2

我无法确定读取 Java 程序某些输入的最佳方式。它需要读入一个罗马数字的单个字符,然后对其进行一些操作。

然而,有几个问题。输入必须从标准输入中读取,因为正在使用输入重定向。

此外,我需要能够检测到这对 CR/LF 字符来确定行尾,以及 EOF 来确定文件的结尾。

实现这一目标的最佳方法是什么?我四处窥探,发现 Scanner 没有 .nextChar 类(本来可以很好地工作)。

4

3 回答 3

1

只是 System.in.read() 有什么问题吗?它返回一个 int(只需将其转换为 char)和 EOF 的 -1。

于 2010-06-23T19:18:57.103 回答
0

Scanner 没有 nextChar 类,因为它无法确定这意味着什么。空格是字符;你应该跳过它们还是阅读它们?

如果 Scanner 的语义是您想要的,为什么不使用 Scanner 读取整行(使用nextLine),然后遍历该行的字符?如果您不想要行内空白,只需删除它或忽略它。

于 2010-06-23T18:48:34.780 回答
0

您可以使用FileReaderread类的方法(它继承自InputStreamReader类)。这将一次读取一个字符,并在到达文件/流的末尾时返回 -1。

于 2010-06-23T18:51:28.173 回答