Javaでキーボードから返されたScanner
を取得する方法は何ですか。char
nextLine()
for String
、nextInt()
forint
などのように。
Javaでキーボードから返されたScanner
を取得する方法は何ですか。char
nextLine()
for String
、nextInt()
forint
などのように。
char
からを取得するにScanner
は、 メソッドを使用できますfindInLine
。
Scanner sc = new Scanner("abc");
char ch = sc.findInLine(".").charAt(0);
System.out.println(ch); // prints "a"
System.out.println(sc.next()); // prints "bc"
char
aからの束が必要な場合はScanner
、(おそらく一時的に)区切り文字を空の文字列に変更する方が便利な場合があります。これによりnext()
、毎回長さ 1 の文字列が返されます。
Scanner sc = new Scanner("abc");
sc.useDelimiter("");
while (sc.hasNext()) {
System.out.println(sc.next());
} // prints "a", "b", "c"
Console API (Java 6 で登場) は次のように使用できます。
Console cons = System.console();
if(cons != null) {
char c = (char) cons.reader().read(); // Checking for EOF omitted
...
}
1行だけが必要な場合は、リーダー オブジェクトを通過する必要さえありません。
String s = cons.readLine();
Java の Scanner クラスには、 Scanner から文字単位で読み取る組み込みメソッドがありません。
http://java.sun.com/javase/6/docs/api/java/util/scanner.html
ただし、次のように、スキャナーから個々の文字を取得することは引き続き可能です。
Scanner sc:
char c = sc.findInLine(".").charAt(0);
そして、それを使用して、次のようにスキャナーで各文字を取得できます。
while(sc.hasNext()){
char c = sc.findInLine(".").charAt(0);
System.out.println(c); //to print out every char in the scanner
}
findInLine() メソッドはスキャナーを検索し、指定した正規表現に一致する最初の文字列を返します。
Console cons = System.console();
上記のコード行は、null参照として短所を作成します。コードと出力を以下に示します。
Console cons = System.console();
if (cons != null) {
System.out.println("Enter single character: ");
char c = (char) cons.reader().read();
System.out.println(c);
}else{
System.out.println(cons);
}
出力:
ヌル
コードは、Javaバージョン「1.6.0_37」を搭載したMacBookProでテストされました。
sc.next().charat(0)........は、実行時に入力された数値に基づいてユーザーが文字を入力する方法です。
例: sc.next().charat(2)------------>>>>>>>>