扫描方法获取char

时间:2010-04-08 05:54:20

标签: java char java.util.scanner

使用Java键盘返回Scanner的{​​{1}}方法是什么?

类似于char的{​​{1}},nextLine()的{​​{1}}等等。

6 个答案:

答案 0 :(得分:20)

要从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"

答案 1 :(得分:4)

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

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

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

String s = cons.readLine();

答案 2 :(得分:2)

Java的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()方法搜索扫描程序并返回与您提供的正则表达式匹配的第一个String。

答案 3 :(得分: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);
}

输出:

  

代码在macbook pro上测试,版本为“1.6.0_37”

答案 4 :(得分:0)

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

例如: 。sc.next()的charAt(2)------------>>>>>>>>

答案 5 :(得分:0)

Scanner sc = new Scanner (System.in)
char c = sc.next().trim().charAt(0);