Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取字符的Scanner方法_Java_Char_Java.util.scanner - Fatal编程技术网

Java 获取字符的Scanner方法

Java 获取字符的Scanner方法,java,char,java.util.scanner,Java,Char,Java.util.scanner,什么是Scanner方法来获取Java键盘返回的char 如nextLine()用于String,nextInt()用于int,等等。您可以使用(在Java 6中出现)如下所示: Console cons = System.console(); if(cons != null) { char c = (char) cons.reader().read(); // Checking for EOF omitted ... } Scanner sc: char c = sc.findI

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

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

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

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

char c = sc.findInLine(".").charAt(0);
如果只需要一行,甚至不需要遍历reader对象:

String s = cons.readLine();

要从
扫描仪
获取
字符
,可以使用
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"
如果您需要从
扫描器
中获取一堆
字符,那么(可能暂时)将分隔符更改为空字符串可能更方便。这将使
next()
每次返回一个长度为1的字符串

    Scanner sc = new Scanner("abc");
    sc.useDelimiter("");
    while (sc.hasNext()) {
        System.out.println(sc.next());
    } // prints "a", "b", "c"

Java的Scanner类没有一个内置的方法来逐个字符地读取扫描器

但是,仍然可以从扫描仪中提取单个字符,如下所示:

Console cons = System.console();
if(cons != null) {
  char c = (char) cons.reader().read();  // Checking for EOF omitted
  ...
}
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()方法搜索扫描器并返回与给定正则表达式匹配的第一个字符串

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上用java版本“1.6.0_37”测试的。

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

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

谢谢mate的快速回复,所以没有内置的方法。最后我做了字符串str=kb.nextLine();字符c=str.charAt(0)@多边形:默认分隔符是(
“”
)。。。?如何使其倒退?这是建议的方式吗?因为这一个比所有其他给定的解决方案都简单
findInLine(“.”
将不匹配换行符。第二种方法可以。为什么使用
findInLine(“.”)我可以通过这个
扫描仪在=新扫描仪(System.in)中获取输入;字符a;a=in.next().charAt(0);系统输出打印项次(a)请在代码中添加解释。这个答案在已经存在和被接受的答案之上增加了什么?
Scanner sc = new Scanner (System.in)
char c = sc.next().trim().charAt(0);