我可以一起使用scanner.skip()和scanner.hasNextLine()吗?

时间:2017-09-11 14:34:45

标签: java regex java.util.scanner

我可以一起使用.skip()和.hasNextLine()吗?

我想拥有所有的nextline元素,只要它们不是\ r \ n 为了澄清,我有一个excel文档来执行此操作:

我有一个excel文档,如下所示:https://imgur.com/Lwhy7K1

根据我的理解,其内容如“1”,“第1天\ r \ n第2天”,“4974”,“54”,“67”,“\ n” “2”, “第3天”, “56843”, “568”, “5496”

我无法控制这一点。会是这样的 在我的程序中,我将每行设置为不同的对象。

我想这样读 https://i.imgur.com/f5O6TbR.png

根据我的理解,其中包括“1”,“Day 1 Day2”,“4974”,“54”,“67”,“\ n”“2”,“Day3”,“56843”,“568” “5496”

最初,我打算创建一个巨大的长字符串,然后使用替换将所有“\ r \ n”替换为一个简单的“”,这解决了我的整个问题。但我不知道如何将整个扫描仪对象放在一个包含所有换行符的长字符串中。从那里我可以创建一个简单的行数组,然后创建我的对象。但它会在同一个单元格中的第一个“\ n”上打破。

所以我有了一个想法,我不需要做整个替换。我可以跳过包含“/ r / n”的部分并创建字符串,使其仅以“\ n”而不是“\ r \ n”结尾。

我希望做类似.skip(“\ r \ n”)。hasNextLine()的内容,如下所示:

public static void readMe(Scanner fieldScan) {
    int row = 0;
    while (fieldScan.skip("\r\n").hasNextLine()){ 
        row++;
        String currentLine = fieldScan.skip("\r\n").nextLine();
        Field currentField = new Field(currentLine, row);
        if(!currentField.getRemove()) {
            fieldArrayList.add(currentField);
        }

    }

但这不正确。我不明白为什么。

编辑:我想要做的事情就是把它们算作一行。它有一个换行符,目前正在将其视为当前行。

所以它看起来像“1”,“第1天”,这就是我对该行的所有信息。

我希望我的所有信息都在一行中。而不是“第1天”和“第2天”在两个单独的行上,我希望它们在一行上,所以当我创建对象时它不会分解

0 个答案:

没有答案