扫描方法获取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);