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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.