gpt4 book ai didi

java - 如何在 Java 的非缓冲阅读器中查看单个字符

转载 作者:行者123 更新时间:2023-11-30 11:28:20 25 4
gpt4 key购买 nike

我正在编写一个程序,它接受一个阅读器并解析来自该阅读器的输入。我不能使用 BufferedReader,但我想实现一个 peek 方法来查看阅读器中的当前字符,而不实际调用该字符的 read()。有没有比将其转换为字符数组或字符串并查看字符更简单/更好的方法?我很想使用 mark() 方法,但不幸的是,它只适用于缓冲读取器。

最佳答案

自然的解决方案是使用 PushBackReader,它提供了 unread 方法,可用于实现 peek。 (你可以算出细节!)

但这是否被允许并不完全清楚。这取决于您是否被禁止使用 BufferedReader 或“缓冲的 Reader”。在后一种情况下,PushBackReader 可以说是一个缓冲的 Reader

如果您必须在不使用现有缓冲 Reader 类的情况下实现它,那么您应该如何处理它取决于需要多少前瞻性:

  • 如果您只需要一个字符先行(例如,只需 peek),那么您可以使用 int 来表示先行和 boolean 来实现这一点 说明当前是否有效。

  • 如果需要多个字符前瞻,则需要数组(或列表)等。


郑重声明,mark()reset() 方法实际上在Reader API 中。问题是并非所有 Reader 类都能够实现这些方法...由于底层流的限制...在操作系统级别。

关于java - 如何在 Java 的非缓冲阅读器中查看单个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18908350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com