2017-07-01 71 views
-4

所以這是我的問題。我使用這個代碼,它不起作用。我想分割一個名爲response的字符串,並獲取它已被分割的多少個peaces的數量。如何統計有多少分裂

public void updateSQLite(String response){ 
     String[] kazkiek = response.split(";"); 
     System.out.println(response); 
     for(int p = 0; p <= 2; p++) { 
      for (int i = 0; i <= kazkiek.length; i++) {} 
     } 
} 

我的Android監視器返回此錯誤:

未處理的異常成因 java.lang.ArrayIndexOutOfBoundsException:長度= 1; index = 1

正如我在其他問題上看到的,這是因爲只有一個索引。我的字符串很長,分裂成300多個。

+1

我不認爲你貼權代碼或相關的代碼。在發佈的代碼中沒有索引,並且異常不可能來自這裏。 – janos

+2

分割數量等於'kazkiek.length'。 – nbokmans

+0

@janos當我將kazkiek.lenght更改爲20進行測試時,一切正常 –

回答

0

我不知道爲什麼你使用for(int i=0;i<=thing.lenth;i++)但這裏是工作的代碼

String tt = "asldkj;alskdjfh;alksdjfhlads;lkajsdfhlkas;lkajsdhflkadsf;lkjasdhflkjasdf;lkajsdhflkajshdf;lajkshdflkhasdf;alskdjflkajsdfölk;ölkajsdföljasdöfl;aölksdjfölkajsdf"; 
String[] test = tt.split(";"); 
int count =0; 
for(int p = 0; p <= 2; p++) { 
    for (int i = 0; i < test.length; i++) { 
     System.out.println(i+" "+test[i]); 
     count++; 
    } 
} 
System.out.println(count+" peaces!"); 
-1

你內心的for循環創建出界外的,因爲它是迭代次數多有在kazkiek值(試for (int i = 0; i < kazkiek.length; i++) {})。

下面是一些示例代碼:

private void splitString(String input) { 
    String[] words = input.split(";"); 
    int wordCount = words.length; 
    System.out.println("number of words: " + String.valueOf(wordCount)); 
    for (int i=0; i<words.length; i++) System.out.println(words[i]); 
} 
+0

事實上,他的循環和你的「很好」,由OP張貼的錯誤不是在他顯示的片段中引起的 – Adonis