Ошибка разделения строки Java - PullRequest
0 голосов
/ 19 января 2012

Мне нужно разбить массив строк, а затем сохранить его в меньшую строку.Пожалуйста, помогите мне .... что я делаю не так .....

 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]);
 }

здесь

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

где

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

и

   String[] data;

Но что я получаю при разбиении, это ошибка .......

  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)

Ответы [ 5 ]

1 голос
/ 19 января 2012

Я думаю, что не все ваши строки имеют два пробела.Просто не делайте такие вещи, как данные [х].Используйте другой цикл, чтобы использовать эти строки.

1 голос
/ 19 января 2012

Это работает для меня, я не уверен, что не так.Вы можете снова проверить входные данные.

 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]);
}
0 голосов
/ 19 января 2012

Юо должен заменить i<suburl.size(); на i<suburl.size() - 1;

0 голосов
/ 19 января 2012

У меня нормально работает:

 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]);
     }

Результаты:

   alex
21
engineer
xyz
21
engineer
tim
21
engineer
gary
21
engineer
0 голосов
/ 19 января 2012

Если вы установите данные в ArrayList следующим образом:

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

Я думаю, что вы можете изменить его и сделать suburl.add("alex 21 engineer");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...