从文件中操作字符串



我有一个语法像这样的文件:

! <Group>, Column1, column2, column3 
Group, 10, 20, 30
Group, 11, 12, 13
...
! <AnotherGroup>, Column1, column2, column3, column4
AnotherGroup, 10, 20, 30, A
AnotherGroup, 11, 12, 13, B
...

当我尝试通过Scanner对象操作字符串时,会发生一些奇怪的事情,例如:

  • 找到文件结束
  • 有时不识别字符"!"(见代码片段)
  • 有时不识别空格字符

        sc = new Scanner(new File("files/myFile"));
    while (sc.hasNextLine()) {
        String tempLine = sc.nextLine();
        if (tempLine.contains("!")) {
            System.out.println(tempLine);
    

无论如何,我认为我必须读取整个文件并将其存储为特定格式以便操作。

有什么建议吗?

第一次回答后编辑:这就是有时无法识别字符"!"的情况。(参见代码片段)

我的系统输出:

! <Group1>, Column1, column2, column3 
! <Group2>, Column1, column2, column3 
! <Group5>, Column1, column2, column3

没有读第3组和第4组的行

我认为扫描器没有问题。至少您提供的那部分代码可以正常工作。如果你犯了一些愚蠢的错误,可能会被验证,或者等待一些专家来帮助你;-)

我想你误解了扫描仪的工作原理。nextLine()使扫描器跳过它正在查看的当前行的其余部分,并返回一个包含被跳过的文本的String。它在下一行的开头离开扫描器。

你没有解释你的奇怪事情发生的背景。当您说"找到文件结尾"是正在发生的奇怪事情之一时,我将假设这发生在接近末尾时,此时您希望再处理一行。如果扫描器正在查看文件中最后一行的开头,hasNextLine()将返回什么?while循环将在不处理文件的某些内容的情况下完成。如果这不是你所经历的行为,你需要更好地解释。

如果您想使用扫描器,请尝试查看如下内容

相关内容

  • 没有找到相关文章

最新更新