1

myScanner.findWithinHorizo​​n.charAt(1) のコードがあります。単語を入力してから、その単語の 2 番目 (3 番目、4 番目など) の文字を取得したいと考えています。.charAt(0) があれば動作し、最初の文字を返します。

別の .charAt() を設定するたびに、機能しません:スレッド「メイン」の例外 java.lang.StringIndexOutOfBoundsException: 範囲外の文字列インデックス: 1

public static void main(String[] args) {

    char c1;

    Scanner myScanner = new Scanner(System.in);

    System.out.print("Write something: ");

    c1 = myScanner.findWithinHorizon(".", 0).charAt(1);

    System.out.println(c1);

}

ありがとう。

4

2 に答える 2

3

.「それが何であれ、1文字」を意味する正規表現です。つまり、次の文字を探しています。したがって、返される文字列には単一の文字が含まれます。したがって、インデックス 1 で char を取得しようとすると、この例外がスローされます。

次の単語を取得するには、 を使用しますScanner.next()

于 2013-05-15T13:45:51.603 に答える