gpt4 book ai didi

java - 扫描仪中的 NoSuchElementException

转载 作者:行者123 更新时间:2023-12-02 07:22:55 30 4
gpt4 key购买 nike

我正在开发一种解析器(业余爱好项目),它采用 Cpp 文件,读取文件中的注释,然后尝试基于该文件创建头文件。

我面临的问题是当java.util.Scanner即将读取第一行时。程序停止并给出 NoSuchElementException。我真的不知道哪里出了问题。我检查了路径和路径名是否正确。该文件必须在那里,并且在调试时我也可以读取 Scanner 对象上的字段。那么到底是什么问题呢?

有人暗示它可能认为文件中没有行。

问题发生在 while((line = Scanner.next()) != null) {

@Override
public void run() {
Scanner scanner = null;
String filename = "", path = "";
StringBuilder puBuilder, prBuilder, viBuilder;
puBuilder = new StringBuilder();
prBuilder = new StringBuilder();
viBuilder = new StringBuilder();
for(File f : files) {
try {
filename = f.getName();
path = f.getAbsolutePath();
path = path.replace(filename, "");
filename = filename.replace(".cpp", "");
scanner = new Scanner(new FileReader(f));
} catch (FileNotFoundException ex) {
System.out.println("FileNotFoundException: " + ex.getMessage());
}

String line;
String tag;
while((line = scanner.next()) != null) {
line = line.trim();
if(line.startsWith(PUBLIC)) {
tag = PUBLIC;

最佳答案

罪魁祸首是:

while((line = scanner.next()) != null)

scanner.next() will throw a NoSuchElementException if there are no more tokens available 。您可以改用 hasNext 方法:

while(scanner.hasNext()) {
String line = scanner.next();
//etc.
}

关于java - 扫描仪中的 NoSuchElementException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13963240/

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