入力を解釈するためにJavaを使用しています。私はBufferedReaderを使用しています。私の目標は、charを読み込んだ後に量の行を読み込むことです。ここで-1は停止コマンドです。Java:BufferedReaderで入力を読み取るときにエラーが発生しました。
CASE 1 - L1
CASE 1 - L2
CASE 2 - L1
CASE 2 - L2
CASE 2 - L3
私は正しい方法で行を取得していますということは何を意味するでしょう:何か
2
CASE 1 - L1
CASE 1 - L2
3
CASE 2 - L1
CASE 2 - L2
CASE 2 - L3
-1
次のように私の目標は、単に出力として持っているだろう。
L:
L:CASE 1 - L1
L: - L2
L:
L:CASE 2 - L1
L:CASE 2 - L2
L: - L3
私が間違っているのは何:
public class TESTE {
public static void main(String[] args) throws IOException {
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
int state;
while ((state = buffer.read()) != 45) {
char c = (char) state;
if (Character.isDigit(c)) {
int n = Character.getNumericValue(c);
for (int i = 0; i < n; ++i) {
System.out.println("L:" + buffer.readLine());
System.out.println();
}
}
}
}
}
私の出力があるいくつかの理由について次のように私のコードはありますか?その入力に対処するエレガントな方法はありますか?
私はそれにちりばめられました!それから私はそれを知った\ n !!私はちょうどbuffer.readLine()を追加します。 int n = Character.getNumericValue(c)の前に。それはうまくいった!あなたのソリューションはまた私に同じ期待される出力を与える!しかし、私のものよりも短く、実際にはよりエレガントな私はそれを使用します!ありがとうございました !!! –
@ Pj-ユーザーが数値以外の入力をした場合、このコードは私の答えで処理された例外を発生させます。短いコードは、エレガントであることを意味するものではありません! –
@ワシアマドはありがとう!それは非常に良い点でした!私はそれにもっと注意するでしょう!もう一度ありがとうございます! –