扫描方法获取char

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

像用于String nextLine() ,用于int nextInt()等。

要从Scanner获取char ,可以使用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" 

如果您需要来自Scanner的一堆char ,那么(可能暂时)将分隔符更改为空字符串可能更方便。 这将使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 ... } 

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

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

 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”

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

例如:sc.next()。charat(2)———— >>>>>>>>

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