-2

文字列内のアイテムの数を数え、それぞれを別々に表示する必要があります 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);
    }

結果は、コードが文字列を通過することを示していますが、その途中までです。約700のアイテムがあります。しかし、350 項目しかないことを示しています。

4

5 に答える 5

2

問題は、がすべてreplace置換を実行することです。したがって、が複数回出現する場合(たとえば、エントリの重複が原因で)、一部のエントリが時期尚早に削除されます。(実際には、それよりもさらに悪い場合があります。たとえば、 と の両方がある場合、エントリの一部だけを削除して、奇妙なマージを引き起こす可能性があります。)tempforms3,123,

最小限の修正は、省略しreplaceて使用することsubstringです:

forms = forms.substring(index+1);

代わりに試してみることをお勧めしますsplit

于 2013-03-22T01:44:12.807 に答える
1

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

,これにより、文字列が:がある場所ならどこでも複数の文字列に分割されます。他の区切り文字を使用して分割できます。forms.split(":");

splitString[0]その後、 ... などと言って、個々の (分割された) 文字列を参照できます。

より具体的には、次のように結果の文字列配列をループします。

for (int curr = 0 ; curr < splitString.size(); curr++){
      System.out.println(i + ") " + splitString[curr]; 
}
于 2013-03-22T01:40:11.347 に答える
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);
}
于 2013-03-22T01:43:52.673 に答える
1

分割を使用できます。] および [ 記号を避けるために、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("]", ""));


           }
        }
于 2013-03-22T01:44:09.713 に答える
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);
于 2013-03-22T01:52:05.057 に答える