从java Scanner获取单独的字符

时间:2013-01-07 21:56:50

标签: java

在Java的Scanner类中,为什么语法nextChar()不存在,并且有一个命令可以做类似的事情而不使用String变量吗?

4 个答案:

答案 0 :(得分:4)

两种解决方案:

  • 使用toCharArray():这将返回char[],您可以使用foreach循环;
  • 将字符串长度与.charAt()结合使用。

答案 1 :(得分:1)

Java的Scanner类操作令牌,完整的输出单位。这通常是完整的单词,文本行,数字(整数,双精度,浮点数等)。如果你想阅读单个字符,你应该在像这样的构造中使用BufferedReader

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

用您用于扫描仪的任何输入替换System.in。然后使用char c = (char)in.read()从输入中读取下一个字符。

答案 2 :(得分:1)

如果你想要字符级访问,你可以进入下面的级别,只需使用InputStream界面:

public class Test
{
    public static void main(String[] args) throws Exception
    {
        while (true)
        {
            char c = (char)System.in.read();
            System.out.println("[" + c + "]");
        }
    }
}

答案 3 :(得分:1)

Scanner s = new Scanner(System.in);
s.next(“.{1,}”);

因此,您可以使用Scanner#next()方法并传递仅使用一个char作为参数的正则表达式 您可以使用上面的示例。