线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:4 at bt.ddd.main(ddd.java:13)

时间:2013-10-04 05:52:33

标签: java

因为我最近学习了java所以我需要一种简单的方法来解决这个问题。

public static void main(String[] args) {        
    String test = "F: M1,“Khan lanh”,1; M2,”Trai cay dia”,3; M3,”Chuoi luoc”,1; M4,”Canh chua”,3";
    String [] result= test.split("F:");
    for (int i=1;i<result.length;i++){
        String [] result1=result[i].split(";");             
        for (int j=0;j<result1[i].length();j++){
            String [] result2= result1[j].split(",");
            for(String s: result2){
                System.out.println(s);
            }   
        }   
    }       
}

这与我的期望相去甚远:

M1
“Khan lanh”
1
M2
”Trai cay dia”
3
M3
”Chuoi luoc”
1
M4
”Canh chua”
3

1 个答案:

答案 0 :(得分:4)

您需要将第二个for循环中的条件更改为以下内容: -

for (int j = 0; j < result1.length; j++) { // traverse over all elements of result1 and thus use its length

你所做的是result1[i].length() - 它将考虑i数组的result1索引中存在的分割字符串的长度,这是错误的。

此外,在旁注中,不应该首先for0开头,而不是1(只是看到你的字符串。1应该在你的情况)。