15

在Java中获取键盘返回的Scanner方法是什么。char

nextLine()for String, nextInt()forint

4

6 回答 6

21

要从 a 中获取chara 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"

如果您需要一堆charfrom a 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

您可以使用控制台 API(在 Java 6 中出现),如下所示:

Console cons = System.console();
if(cons != null) {
  char c = (char) cons.reader().read();  // Checking for EOF omitted
  ...
}

如果您只需要一行,您甚至不需要通过阅读器对象:

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 中获取单个字符,如下所示:

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();

上面的代码行将 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 上进行了测试

于 2013-02-03T21:14:43.920 回答
0

sc.next().charat(0)............是用户根据运行时输入的数字输入字符的方法

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

于 2014-01-17T07:01:18.843 回答
0
Scanner sc = new Scanner (System.in)
char c = sc.next().trim().charAt(0);
于 2017-04-06T10:54:38.350 回答