首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扫描器内扫描误差

扫描器内扫描误差
EN

Stack Overflow用户
提问于 2016-08-16 12:01:37
回答 2查看 54关注 0票数 0

当尝试扫描文本文件,然后扫描文本文件中的每一行以创建对象时,我会得到下面的错误。知道我该怎么解决这个问题吗?

错误:java.util.NoSuchElementException at java.util.Scanner.throwFor(Scanner.java:862) at java.util.Scanner.next(Scanner.java:1371) at MyZoo.readDataFromFile(MyZoo.java:111)

代码语言:javascript
复制
while(scanner.hasNextLine()){
    lineOfInput = scanner.nextLine();
    if(lineOfInput.startsWith("#")){

    } else {
        String animalType, species, name;
        Scanner newScanner = new   Scanner(lineOfInput).useDelimiter("\\s*,\\s*");

        animalType = newScanner.next();
        System.out.println(animalType);
        species    = newScanner.next();
        name       = newScanner.nextLine();
   }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-16 12:14:42

就像你在评论中说的

这是一个包含数据行的文本文件,我使用第一台扫描仪在行中读取。然后尝试扫描行中的每个单词,并将它们赋值为变量。在我扫描前3行之后,我希望读取动物类中的其余数据。

您的第二个扫描器使用了一个错误的分隔符,因此您将得到该异常。

试着:

代码语言:javascript
复制
Scanner newScanner = new   Scanner(lineOfInput).useDelimiter("\\W");

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2016-08-16 12:09:53

我认为你可以这样做:

代码语言:javascript
复制
while (scanner.hasNextLine()) {
    lineOfInput = scanner.nextLine();
    if (lineOfInput.startsWith("#")) {

    } else {
        String animalType, species, name;

        String s[] = lineOfInput.split(" ");
        animalType = s[0];
        species = s[1];
        name = s[2];
    }

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38974422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档