15

Javaでキーボードから返されたScannerを取得する方法は何ですか。char

nextLine()for StringnextInt()forintなどのように。

4

6 に答える 6

21

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"

charaからの束が必要な場合はScanner、(おそらく一時的に)区切り文字を空の文字列に変更する方が便利な場合があります。これによりnext()、毎回長さ 1 の文字列が返されます。

    Scanner sc = new Scanner("abc");
    sc.useDelimiter("");
    while (sc.hasNext()) {
        System.out.println(sc.next());
    } // prints "a", "b", "c"
于 2010-04-08T06:16:30.597 に答える
4

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();
于 2010-04-08T05:58:10.093 に答える
2

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() メソッドはスキャナーを検索し、指定した正規表現に一致する最初の文字列を返します。

于 2010-04-08T06:31:46.513 に答える
0
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でテストされました。

于 2013-02-03T21:14:43.920 に答える
0

sc.next().charat(0)........は、実行時に入力された数値に基づいてユーザーが文字を入力する方法です。

例: sc.next().charat(2)------------>>>>>>>>

于 2014-01-17T07:01:18.843 に答える