0

I need to split array of string and then save it into smaller string. Plz help me....what i am doing wrong.....

 for(int i=0; i<suburl.size(); i++){ String temp = suburl.get(i); String[] data = temp.split(" "); Log.i("DATA 0", data[0]); Log.i("DATA 1", data[1]); Log.i("DATA 2", data[2]); } 

here

 public static ArrayList<String> suburl = new ArrayList<String>(); 

where,

 suburl.get(0) = "alex 21 engineer" suburl.get(1) = "mike 22 lawyer" suburl.get(2) = "sunny 26 deisnger" suburl.get(3) = "kim 24 painter" 

and

 String[] data; 

But what i am getting error when splitting is .......

 01-19 20:35:09.820: E/AndroidRuntime(1672): Caused by: java.lang.ArrayIndexOutOfBoundsException 01-19 20:35:09.820: E/AndroidRuntime(1672): at flash.com.MainActivity.onCreate(MainActivity.java:119) 01-19 20:35:09.820: E/AndroidRuntime(1672): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 01-19 20:35:09.820: E/AndroidRuntime(1672): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 
7
  • put it in a unit test and debug. No guesswork needed. Commented Jan 19, 2012 at 15:19
  • 1
    what's the line causing the "index out of bound"? Commented Jan 19, 2012 at 15:19
  • at this point, Log.i("DATA 0", data[0]); Log.i("DATA 1", data[1]); Commented Jan 19, 2012 at 15:21
  • It is working fine for me. Are you sure you are getting error at String[] data? Commented Jan 19, 2012 at 15:22
  • yes...if we have this data, its causing me the error, suburl.add("alex 21 engineer"); suburl.add("xyz 21 engineer"); suburl.add("tim 21 engineer"); suburl.add("gary 21 engineer"); Commented Jan 19, 2012 at 15:26

5 Answers 5

1

What I think is that problably, not all your strings have two spaces. Just do not do things like data[x]. Use another loop to use those strings.

Sign up to request clarification or add additional context in comments.

Comments

1

This works for me, I am not sure what's wrong. You can cross check the input data again.

 List<String> suburl = new ArrayList<String>(); suburl.add("alex 21 engineer"); suburl.add("xyz 21 engineer"); suburl.add("tim 21 engineer"); suburl.add("gary 21 engineer"); for(String temp : suburl) { String[] data = temp.split(" "); System.out.println("DATA 0 " + data[0]); System.out.println("DATA 1 " + data[1]); System.out.println("DATA 2 " + data[2]); } 

1 Comment

single isntace woudl work fine...but multiple wont, suburl.add("alex 21 engineer"); suburl.add("xyz 21 engineer"); suburl.add("tim 21 engineer"); suburl.add("gary 21 engineer");
0

If you set your data in the ArrayList like this:

 suburl.get(0) = "alex 21 engineer" suburl.get(1) = "mike 22 lawyer" suburl.get(2) = "sunny 26 deisnger" suburl.get(3) = "kim 24 painter" 

I think you may want to change it and do suburl.add("alex 21 engineer");

Comments

0

It is working fine for me:

 public class TestClass { public static void main(String args[]) { ArrayList<String> suburl = new ArrayList<String>(); suburl.add("alex 21 engineer"); suburl.add("xyz 21 engineer"); suburl.add("tim 21 engineer"); suburl.add("gary 21 engineer"); for(int i=0; i<suburl.size(); i++){ String temp = suburl.get(i); String[] data = temp.split(" "); System.out.println(data[0]); System.out.println(data[1]); System.out.println(data[2]); } 

Results:

 alex 21 engineer xyz 21 engineer tim 21 engineer gary 21 engineer 

Comments

0

Yuo must replace i<suburl.size(); to i<suburl.size() - 1;

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.