2

スキャナーにスペースを無視させる方法を知っている人はいますか?ファーストネームとセカンドネームを入力したいのですが、スキャナーで入力できません。フルネームを保存したいのですが。

String name;

System.out.print("Enter name: ");
name = scan.next(); //Ex: John Smith

System.out.println(name);

編集:新しい問題..拡張プログラムでnextLineを使用している間、nextLineは質問全体を無視し、名前をスキャンする機会なしに先に進みます。

4

6 に答える 6

3

Scanner#next()空白の周りに線を分割します。 Scanner.nextLine()ないため、にスペースを残します。

name = scan.nextLine(); //Ex: John Smith
于 2012-10-07T22:56:08.013 に答える
2

scanner.nextLine()代わりに、フルラインを読み取るを使用するscan.next();

例:

name = scan.nextLine();

使用可能なメソッドについては、 ScannerクラスのOracleドキュメントを参照してください。

于 2012-10-07T22:53:06.350 に答える
2

Scanner.next空白を使用して区切り、使用できる完全な行を読み取るには、次のようにします。

name = scan.nextLine(); 
于 2012-10-07T22:54:03.537 に答える
2

まず、System.out.print(); 呼び出しに欠陥があります。内部はすべて引用符で囲まれている必要があります System.out.print("Enter name: ");

scan.next()ストリーム内の次の文字を取得しますscan.nextLine()が、次の行(EOL文字で終了)を取得します。これはより役立つ場合があります。

その後、 String[] broken = name.split(" "); スペースで区切られて入力したすべての単語を分割して配置するような単語の配列を作成できます。

その後、あなたは次のようなものに行くことができます

for(int i = 0; i < broken.size; i++)
{
    System.out.print(broken[i] + " ");
}
System.out.println();
于 2012-10-07T22:57:37.383 に答える
1

あなたはこれのようにすることができます

import java.util.*;
class scanner2
{
public static void main(String args[])
    {
    Scanner in= new Scanner(System.in);
    System.out.println("enter the name");
    String name= in.nextLine();//for name with spaces with more than one word or for    one word.

    System.out.println("enter single word");
    String rl= in.next();//single word name

    System.out.println("name is "+name+"  rl is "+rl);

    }

}

それを実行すると、あなたはあなたの答えを得るでしょう。

于 2012-10-07T23:46:31.043 に答える
1

行全体(行末を除く)を読みたいようです。誰かが「helenr。smith」と入力すると、次の行を読み取ることができます。

name = scan.nextLine();
于 2012-10-07T22:52:30.417 に答える