-1

因为我最近学习了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
4

1 回答 1

4

您需要将第二个for循环中的条件更改为如下所示:-

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

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

另外,在旁注中,您不应该首先for0and 而不是1(刚刚看到您的字符串。1应该在您的情况下这样做。)

于 2013-10-04T05:55:22.157 回答