Javaのキーボードから返されるScanner
を取得するchar
メソッドとは何ですか。
String
の場合はnextLine()
、int
の場合はnextInt()
など.
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
から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()メソッドはスキャナーを検索し、指定した正規表現に一致する最初のストリングを返します。
sc.next()。charat(0).........は、実行時に入力された番号に基づいてユーザーが文字を入力する方法です。
例:sc.next()。charat(2)------------ >>>>>>>>
Scanner sc = new Scanner (System.in)
char c = sc.next().trim().charAt(0);
Console cons = System.console();
上記のコード行は、null参照としてconsを作成します。コードと出力は次のとおりです。
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"でmacbook proでテストされました