1

スキャナーメソッドがあり、その後ユーザー入力を印刷したいとします。

たとえば、次のコードを考えてみましょう。

    String randomWords;
    Scanner kb = new Scanner(System.in);

    System.out.print("Please enter two words separated: ");

    randomWords = kb.next();    
    System.out.println(randomWords);

そして、入力された2つの別々の単語が

hello world

それだけ

hello 

印刷されます

どうしてこれなの?スペースを含めて両方の単語を印刷するにはどうすればよいですか?

ありがとうございました。

4

3 に答える 3

5

代わりにScanner#nextLine( )を使用してください。

このメソッドは、最後の行区切り記号を除いて、現在の行の残りを返します。

randomWords = kb.nextLine();    

Scanner#next()は、区切り文字に基づいて次の完全なトークンを読み取ります。

このスキャナーから次の完全なトークンを見つけて返します。完全なトークンの前後には、区切り文字パターンに一致する入力があります

スキャナーのデフォルトの区切り文字は空白であるため、 Scanner#useDelimiter(str)を使用してスキャナーの区切り文字を明示的に定義する必要があります。次の行を区切り文字として使用する\nと、curretnコードが機能します。

 Scanner kb = new Scanner(System.in).useDelimiter("\n");
    System.out.print("Please enter two words separated: "); 
    randomWords = kb.next();    
    System.out.println(randomWords);
于 2013-01-31T11:26:07.100 に答える
1

Scanner.nextLine()メソッドを使用して、改行(包括的ではない)まで読み取ります。

randomWords = kb.nextLine();
于 2013-01-31T11:26:05.727 に答える
1
public static void main(String[] args) {
        String randomWords;
        Scanner kb = new Scanner(System.in);

        System.out.print("Please enter two words separated: ");

        randomWords = kb.nextLine(); 
        System.out.println(randomWords);
    }
于 2013-01-31T11:26:50.653 に答える