0

文字列入力内のキャリッジ リターンの出現回数をカウントしようとしています。Scannerと の両方を試しましBufferedReaderた。ではScannernextLine()キャリッジ リターンをピックアップしません。next()withScannerは入力内のスペースなどのトークンを探し、token は入力を分割します。入力全体を単一の入力として読み取りたい。これはおそらく、スキャナーを使用できないことを意味します。

ではBufferedReaderreadLine()キャリッジ リターンまで読み取りますが、入力でキャリッジ リターンを返しません。「reader.read();」を使用する場合 次に、変数 user_input が int でなければならないことがわかります。user_input は、整数を持つことができる文字列入力であると想定されていますが、そうでない場合もあります。唯一のことは、入力に「/done」が含まれるまでプログラムが続行されることです。誰かが私を正しい方向に向けてくれれば幸いです!

try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String user_input = "";

System.out.println("Enter a string: ");

while (!user_input.contains("/done"))  {


user_input = reader.readLine();        //cannot be readLine because it only reads up to a carriage return; it does NOT return carriage return
                                       //*Sadly, if I use "reader.read();" then it tells me that user_input HAS to be int. user_input is a string input
String input = user_input;
char[] c = input.toCharArray();
int[] f = new int[114];

System.out.println("Rest of program, I convert input to ascii decimal and report the occurences of each char that was used");

}

catch  (IOException e) {
e.printStackTrace();
}
}
4

3 に答える 3

0

これはあなたが探しているものですか?

Scanner scanner = new Scanner(System.in);
scanner.useDelimiter("\\z"); //"\\z" means end of input
String input = scanner.next();

編集:"\n"を として表示する場合は、次の"CR"ようにします。

input.replaceAll("\\n", "CR");
于 2013-04-03T05:09:59.533 に答える