2017-07-01 69 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