gpt4 book ai didi

Java - 读取文本文件的第一个字

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:04 26 4
gpt4 key购买 nike

我无法阅读文本文件的第一个单词。如果第一个单词等于“Circle”,我想在我的数组中创建一个新的 Circle 对象。

            FileInputStream fileIn = new FileInputStream("shapeFile.txt");
Scanner scan = new Scanner(fileIn);
while(scan.hasNextLine()) {
String shape = scan.next();
if(shape.equals("Circle")) {
myShapes.addShape(new Circle(scan.nextInt(), scan.nextInt(), scan.nextInt(), Color.RED));
}
}

上面的代码出现以下错误,指向 String shape = scan.next(); 行;

Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1371)
at shapes.ShapeManagement.main(ShapeManagement.java:151)
Java Result: 1

如果有人能帮助我解决这个问题,我将不胜感激。

最佳答案

你可能得到这个异常的原因是因为 scan.hasNextLine() 可以返回 true 即使该行上没有标记。如果您在标记后没有标记时调用 scan.next(),您将得到您所看到的 java.util.NoSuchElementException

因此,将 scan.hasNextLine() 换成 scan.hasNext()

或者,您可以将 scan.next() 替换为 scan.nextLine(),然后检查该行中的第一个单词是否是您要查找的单词.对于包含大量行的文件,这可能会更快。

希望对您有所帮助。

Link to the Scanner API for reference.

关于Java - 读取文本文件的第一个字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23345160/

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