【发布时间】:2026-01-13 12:00:01
【问题描述】:
我对我过去做过的某件事有疑问,但从未真正想过它是否是最有效的使用方法。
假设我有一个文本文件,其中每一行都包含一些重要内容,然后假设我有多组这些行,每行对应一个独特的环境......例如:
1
String that I need to parse for specific tokens..
2
String that I need to parse for specific tokens..
String that I need to parse for specific tokens..
3
String that I need to parse for specific tokens..
String that I need to parse for specific tokens..
String that I need to parse for specific tokens..
因此,鉴于上述输入文件,我过去解决此问题的方法类似于以下内容(半伪代码!):
BufferedReader inputFile = new BufferedReader(new FileReader("file.txt"));
while(inputFile.hasNextLine())
{
Scanner line = new Scanner(inputFile.nextLine());
//parse the line looking for tokens
}
inputFile.close();
我的问题是,为 BufferedReader 中的每一行创建一个新的 Scanner 对象似乎非常低效。
有没有更好的方法来实现这个功能?
一个建议可能是通过标记扫描整个文档,但我的问题是我无法跟踪子集之外有多少字符串(由整数表示);或者至少我想不出其他解决方案,除了每次查看新行时减少一个计数器。
提前致谢!
【问题讨论】:
-
在 Java 中解析字符串的方法有很多,但不涉及使用
Scanner。我很震惊谷歌搜索或搜索 SO 没有出现一个... -
@BrianRoach 我也是,这就是我发布问题的原因。