2

在 Java 的 Scanner 类中,为什么语法不存在,是否有一个命令会在不使用变量nextChar()的情况下做类似的事情?String

4

4 回答 4

4

两种解决方案:

  • use toCharArray():这将返回一个char[]你可以使用 foreach 循环的对象;
  • 将字符串长度与.charAt().
于 2013-01-07T21:58:29.587 回答
1

Java 的 Scanner 类对标记(完整的输出单元)进行操作。这通常是完整的单词、文本行、数字(整数、双精度数、浮点数等)。如果你想读取单个字符,你应该在这样的结构中使用 BufferedReader

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

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

于 2013-01-07T22:04:44.647 回答
1

如果您想要 char 级别的访问权限,您可以转到下面的级别并简单地使用 InputStream 接口:

public class Test
{
    public static void main(String[] args) throws Exception
    {
        while (true)
        {
            char c = (char)System.in.read();
            System.out.println("[" + c + "]");
        }
    }
}
于 2013-01-07T22:05:59.430 回答
1
Scanner s = new Scanner(System.in);
s.next(“.{1,}”);

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

于 2017-12-01T09:46:19.000 回答