如何浏览字符串中的项目列表

时间:2013-03-22 01:37:01

标签: java

我需要计算字符串中的项目数并分别显示每个项目1)--- 2)----但代码无法正常工作,

public static void main(String[] args) {
       String forms = "[436,43,4,900,703,483,......]"; << a long list
       int counter = 0;
       int index =0;
       String temp = "";
       for(int i=0; i<=forms.length();i++)
       {
            index = forms.indexOf(",");
            temp = forms.substring(0, index+1);
            System.out.println(i + ") " + temp);
            forms = forms.replace(temp,"");
            counter++;
       }
       System.out.println("Counter" + counter);
    }

结果显示代码遍历String但只是中间。它有大约700项。但它显示只有350项。

5 个答案:

答案 0 :(得分:2)

问题是replace执行了替换 - 所有,因此如果temp多次出现forms(例如由于重复条目),那么一些条目将被提前删除。 (实际上它可能比这更糟糕:你可以删除一个条目的 part ,例如你同时拥有3,123,,并导致奇怪的合并。)< / p>

最小修复是免除replace并使用substring

forms = forms.substring(index+1);

但我建议您尝试使用split

答案 1 :(得分:1)

Sting[] splitString = forms.split(",");

这会将字符串拆分为多个字符串,只要有,:您可以使用任何其他分隔符进行拆分 - 即: - 说forms.split(":");

然后,您可以通过说splitString[0] ...等等来引用单个(拆分)字符串。

更具体地说,关于你的情况,你将循环遍历结果字符串数组,如下所示:

for (int curr = 0 ; curr < splitString.size(); curr++){
      System.out.println(i + ") " + splitString[curr]; 
}

答案 2 :(得分:1)

public static void main(String[] args) {
       String forms = "436,43,4,436,43,43"; 
       String[] parts = forms.split(",");
       int counter = parts.length;
       System.out.println("Counter" + counter);
}

答案 3 :(得分:1)

你可以使用split.To avoid]和[符号我们可以使用replace

public static void main(String[] args) {
           String forms = "[436,43,4,436,43,43,......]"; 
           String[] splitString = forms.split(",");
             for(int i=1; i<=splitString.length;i++)
           {
                            System.out.println(i + ") " + splitString[i-1].replace("[", "").replace("]", ""));


           }
        }

答案 4 :(得分:1)

String forms = "[436,43,4,436,43,44]"; 
           forms=forms.replace("[", "");
           forms=forms.replace("]", "");
           String resultArray[]=forms.split(",");

           for(int i=0; i<resultArray.length;i++)
           {

               System.out.println(i + ") " + resultArray[i]);


           }
           System.out.println("Counter" + resultArray.length);