使用 Scanner 的 nextLine() 和 hasNextLine() 方法时出现问题

2024-03-01

我有一个包含以下数据的日志文件:

最短路径(2)::RV3280-RV0973C-RV2888C
最短路径(1)::RV3280-RV2502C
最短路径(2)::RV3280-RV2501C-RV1263
最短路径(2)::RV2363-Rv3285-RV3280

在每一行中,我需要括号内的数字、第一个蛋白质的名称(第一行中的 RV3280)和最后一个蛋白质的名称(第一行中的 RV2888C)。

我已经为此编写了一个代码,使用Scanner object.

try{
                Scanner s = new Scanner(new File(args[0]));
                while (s.hasNextLine()) {
                    s.findInLine("Shortest path\\((\\d+)\\)::(\\w+).*-(\\w+)"); // at each line, look for this pattern
                    MatchResult result = s.match(); // results from
                    for (int i=1; i<=result.groupCount(); i++) {
                        System.out.println(result.group(i));
                    }
                    s.nextLine(); // line no. 29
                }
                s.close();
        }

        catch (FileNotFoundException e) {
            System.out.print("cannot find file");
        }

我得到了想要的结果,但也收到了一条错误消息。我从上述输入文件得到的输出是:

Exception in thread "main" java.util.NoSuchElementException: No line found
        at java.util.Scanner.nextLine(Scanner.java:1516)
        at nearnessindex.Main.main(Main.java:29)
2
RV3280
RV2888C
1
RV3280
RV2502C
2
RV3280
RV1263
2
RV2363
RV3280
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)

为什么会出现此错误以及如何纠正它?


您的输入数据可能不以行分隔符结尾,这会导致这种情况。致电findInLine将扫描仪移过匹配的模式,并且如果您在调用时位于输入数据的末尾nextLine它会抛出NoSuchElementException

无需过多重新安排代码的简单修复方法是结束 while 循环:

if (s.hasNextLine()) {
    s.nextLine();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Scanner 的 nextLine() 和 hasNextLine() 方法时出现问题 的相关文章

随机推荐

  • 如何增加UINavigationBar的高度?

    简单的问题 如何增加导航栏的高度 以便附加的小部件可以容纳在那里while保持模糊 例如日历应用程序 其中工作日缩写添加到导航栏的底部 并且在 邮件 中 当您将邮件移至其他文件夹时 由于 iAnurag 帖子 ans 是正确的 但仍然存在一
  • Android 如何识别来自外部适配器的 Listview 按钮单击事件?

    我有一个自定义列表视图 其中有按钮作为项目 我想为这个按钮设置监听器 目前我在适配器中使用以下代码来识别它 holder editDetails setOnClickListener new View OnClickListener Ove
  • 如何按行连接包含字符串的几列?

    我有一系列特定的数据集 其一般形式如下 import pandas as pd import random df pd DataFrame n random sample xrange 1000 3 t0 a b c t1 d e f t2
  • 为什么从管道读取时 libc++ getline 会阻塞,而 libstdc++ getline 不会?

    TL DR 一个程序使用libc 的版本getline当函数从管道读取输入时 它将阻塞 直到管道的缓冲区已满 相同的是NOT为真libstdc 的版本getline函数 这里 一旦输入行可用 该函数就会立即读取并返回一行输入 我是否应该预料
  • 有谁知道在 ANTLRWorks 中调试树语法的方法

    ANTLR 使用的推荐模式是让解析器构造一个抽象语法树 然后构建树遍历器 又称树语法 来处理它们 我试图弄清楚为什么我的树语法不起作用 并且希望使用 ANTLRWorks 的调试器 就像我将其用于解析器本身一样 解析器的输入是 源代码 但树
  • 将逗号分隔的文本文件读入数组

    我正在尝试用 C 编写一个程序 模拟大学招生系统 学生输入他们的 ID 程序在文本文件中搜索他们的信息 并根据文本文件加载结构 我已经到了无法将他们注册的课程放入结构数组的地步 使用 getline 函数 使用 作为 delim 也将继续下
  • NAT后的两个节点如何通信?

    我有一些节点 每个节点都属于其他网络 每个节点都有私有IP 例如192 168 0 2并保持在 NAT 之后 节点之间是否有可能进行通信 实际上 我需要在这些独立节点之间传输文件 我尝试使用这个项目 https github com lib
  • 如何更新FormArray的控件

    我的表单组代码如下 this myForm this fb group branch name Validators required branch timing this fb array this initBranchTiming in
  • 缩小大小时防止引导程序中列的包装/堆叠?

    我想使用 nowrap 或任何其他替代方法来防止在 col md 4 上堆叠 col md 8 就像我对 无序列表 所做的那样 下面是我的代码片段 我还提到了每个盒子的类别和颜色 谢谢
  • Spring JdbcTemplate:如何限制选定的行?

    我正在使用春天JdbcTemplate用于从 MS SqlServer DB 获取数据的接口 在文档中我看到有setMaxRows 方法来设置所有查询的限制 但是如果我只想限制一个选择怎么办 有没有办法以 可配置 的方式仅对特定调用的查询设
  • 计算 facebook 封面偏移 y

    我正在使用 Facebook SDK 获取用户封面照片 我有 img 的路径和偏移量 y source http a5 sphotos ak fbcdn net hphotos ak ash3 526114 459046674110601
  • 以编程方式将用户权限添加到 Sharepoint 中的列表

    如何以编程方式将用户权限添加到 Sharepoint 中的列表 我想为某个列表的用户或组添加 贡献 权限 我正在使用 C 您可以使用SP角色分配 http msdn microsoft com en us library microsoft
  • 将枚举值传递给角度 2 组件

    我有一个enum 并且想要从模板传递enum价值 这怎么可能 export enum FIELDS GENDER
  • 多个 y 尺度,但仅启用一个用于平移和缩放

    考虑以下用于绘制 matplotlib 图形的 python 代码 import matplotlib pylab as pp import numpy as np alpha np linspace 0 2 np pi 400 sig1
  • 使用 HTMLUnit 使用 Java 以编程方式登录 Facebook

    这个问题有点像这个问题的补充 如何使用 Java 以编程方式登录 Facebook https stackoverflow com questions 2285250 how to log into facebook programmati
  • 是否可以让 Handler 意识到它已被删除?

    我正在编写一个自定义日志配置类 它设置一个特定的处理程序并将其与根记录器关联 并计划在多个应用程序中使用它 我担心实际的程序代码会删除该处理程序并安装另一个处理程序 有没有一种方法可以让处理程序检测到它已从特定记录器中删除 或者让记录器报告
  • 显示喜欢项目列表中的项目的用户

    我认为这是一个不切实际的问题 但我想得到一些反馈来确认 我有一个产品和用户数据库 用户可以在其中喜欢产品 喜欢的数据存储在仅包含 pid 和 uid 的参考表中 客户请求是显示喜欢产品列表中每个产品的 3 位用户 问题是 不可能在产品列表的
  • Chrome/Webkit 中的 CSS 动画/缩放问题

    此效果在 FF 中运行良好 但在 Chrome 中则不然 Chrome 中的 Firebug 结果显示 webkit animation 未在 Chrome 中呈现 然而 在 Firefox 中 您会在对象入口处看到 拉伸 效果 在 Chr
  • 使用 ICS 更改 wifi 网络时,ErrnoException:isConnected 失败:EHOSTUNREACH(没有到主机的路由)

    在 ics 上使用我的应用程序时 将 wifi 网络从网络更改为网络后 所有图像请求都开始返回 但出现异常 异常失败 gt org apache http conn HttpHostConnectException Connection t
  • 使用 Scanner 的 nextLine() 和 hasNextLine() 方法时出现问题

    我有一个包含以下数据的日志文件 最短路径 2 RV3280 RV0973C RV2888C最短路径 1 RV3280 RV2502C最短路径 2 RV3280 RV2501C RV1263最短路径 2 RV2363 Rv3285 RV328