1

だから私はファイルから行を読んでいます。それは次のようになります:

Snowman:286:355:10

これは、データを分離して配列に配置するために書いたコードの最初の部分です。

 for (int i = 0 ; i<manyItems; i++)
                {
                    a = 0;

                    temp = scan.nextLine();
                    System.out.println(temp);

                    b = temp.indexOf(':');
                    System.out.println(b);

                    items[i] = temp.substring(a,b);
                    System.out.println(items[i]);
                    System.out.println(temp);

                    a = b;

                    System.out.println(temp);

                    b = temp.indexOf(a+1,':');
                    System.out.println(b);

                    rawX[i] = temp.substring(a+1,b);
                    System.out.println(rawX[i]);


                }

「雪だるま」を分離して配列に配置しますが、2 番目のコロンを見つけようとすると、indexOf() は -1 を返し続けます。2番目の結腸が見つからない理由を知っている人はいますか?

4

4 に答える 4

7

そのすべてのコードを保存し、String#splitを使用して行を分割することができます。

String[] parts = temp.split(":");
于 2012-12-05T00:38:20.240 に答える
4

私はあなたが後ろ向きの議論を持っていると思います:

b = temp.indexOf(a+1,':');

する必要があります...

b = temp.indexOf(':', a+1);

docs.oracle.comから:

public int indexOf(int ch,
               int fromIndex)

最初の引数はchアクターであり、2番目の引数はfromIndex

于 2012-12-05T00:38:36.303 に答える
4

indexOf呼び出しの引数を交換したためです。それは文字を期待し、次にインデックスが見始めます。charsはintであることに注意してください。あなたは、int値':'で始まるchar7を探しています。

于 2012-12-05T00:38:59.530 に答える