我无法确定为java程序读取输入的最佳方法。它需要读取罗马数字的各个字符,然后对其执行一些操作。
然而,有几次捕获。 必须从标准输入读取输入,因为正在使用输入重定向。此外,我需要能够检测到一对CR / LF字符以确定行尾,并使用EOF来确定文件的结尾。
实现这一目标的最佳方法是什么?我已经偷窥了,我发现Scanner没有.nextChar类(可以完美地工作)。
答案 0 :(得分:1)
只是System.in.read()有问题吗?它返回一个int(简单地将其转换为char)和-1返回EOF。
答案 1 :(得分:0)
Scanner没有nextChar类,因为它无法确定这意味着什么。空白是人物;你应该跳过它们还是阅读它们?
如果扫描仪的语义是您想要的,为什么不使用扫描仪读取整行(使用nextLine
),然后遍历该行的字符?如果你不想要intraline空格,只需删除它或忽略它。
答案 2 :(得分:0)
您可以使用FileReader类的read
方法(它继承自InputStreamReader类)。这将一次读取一个字符,并在到达文件/流的末尾时返回-1。