3

「改行」を待たずに、ユーザーが入力したすべての文字を読み取ろうとしています。

AFAIK Scanner はアプリケーションに入力を送信する前に改行文字を待機するため、このコードは機能しません

Scanner s = new Scanner(System.in);
if(s.hasNext()){
    char c = s.next().charAt(0);
}

私もBufferedReaderで試しました:

System.out.println("Input something: ");
BufferedReader b = new BufferedReader(new InputStreamReader(System.in));
while(!b.ready()){
    try {
        Thread.sleep(100);
    } catch (Exception e) {
    }
}
System.out.println("Now it's ready, i'm reading the first char");
char c = (char)b.read();

しかし、出力は次のとおりです。

Input something:
> abcde
Now it's ready, i'm reading the first char

したがって、常に改行文字を待っています。

Javaで改行を待たずにユーザー入力を読み取る方法はありますか?

ありがとう、助けていただければ幸いです

4

0 に答える 0