質問する
15667 次
3 に答える
2
まず、 はorメソッドによる書式設定を既にサポートしているためSystem.out
、 a でラップする必要はありません。PrintStream
out
format()
printf()
次に、データの行を入力すると、新しい行 で終了することも理解する必要があります\n
。next<Type>()
メソッドは のみを消費し、他には何も消費し<Type>
ません。したがって、next<Type>()
呼び出しが に一致する可能性がある場合は、余分な新しい行を前に別の行で\n
スキップする必要があります。 \n
nextLine()
修正を加えたコードは次のとおりです。
int num;
double num2;
String name;
char c;
Scanner sc = new Scanner(System.in);
//for integer
System.out.print("Enter a number: ");
num = sc.nextInt();
System.out.printf("%d\n", num);
//for float
System.out.print("Enter a float value: ");
num2 = sc.nextDouble();
System.out.printf("%.2f\n", num2);
//for name w/o white space
System.out.print("Enter your first name: ");
name = sc.next();
System.out.printf("Hello %s, welcome to Scanner\n", name);
//for character
System.out.print("Enter a character: ");
c = sc.findWithinHorizon(".", 0).charAt(0);
System.out.printf("%c\n", c);
sc.nextLine(); // skip
//for name w/ white space
System.out.print("Enter your full name: ");
name = sc.nextLine();
System.out.printf("%s", name);
于 2013-08-04T18:20:30.143 に答える
0
Scanner.next(Pattern)
および passを使用しPattern.compile("[A-Za-z0-9]")
て、スキャナが定義された 1 文字のみを受け入れるようにします。
任意の正規表現を引数として渡し、スペースを含む次の行のnext()をチェックできます
Scanner.next();
于 2013-08-04T17:44:55.103 に答える