繁体   English   中英

如何在Java中读取.txt文件中一行的最后一组数字

[英]How to read the last group of numbers on a line in a .txt file in Java

我目前有一个文本文件,如下所示:

Bob Peach 1000 115
Hugh Mungus 1001 250
Joe Bloggs 1003 555
Joe Walsh 1004 6
Ben Davis 1005 1

我需要阅读该行的最后一组数字,将它们加在一起,然后将答案输出到单独的文本文件中。 我将如何处理?

编辑:预期结果应该是在输出文件中的一个字符串,如下所示:

There are currently 927 points.

编辑2:抱歉,我们没有更好地解释它,但我现在修改了使用实际名称而不是仅使用占位符的虚拟文件的外观。 如您所见,最后一组数字之前的字符数并不总是相同。

编辑3:这是我在等待回复时尝试过的方法,通常我认为它应该起作用。

public void processFiles()
{        
    total = 0;
    while(input.hasNextInt())
    {
        input.nextInt();
        total = total + input.nextInt();
        input.nextLine();
    }

    output.print("There are all together " + 
                 total + " points.");
}

但是上面的代码只是输出有0点。

编辑4:

public void processFiles()
{        
    total = 0;
    while(input.hasNext())
    {
        String line = input.nextLine();
        String[] splitLine = line.split(" ");
        total += Integer.parseInt(splitLine[splitLine.length - 1]);
    }

    output.print("There are all together " + 
                 total + " points.");
}

假设仅提供了信息(行项目由单个空格分隔,最后一项始终是您想要的数字),则可以读取文件中的每一行并在每一行中执行以下操作。

String[] splitLine = line.split(" ");
total += Integer.parseInt(splitLine[splitLine.length - 1]);

阅读文件并遍历每一行作为练习留给读者。

尝试这样的事情...

您只需逐行读取文件,使用space字符将每一行拆分,然后将行的最后一部分转换为integer

int sum=0;
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
    String line;
    while ((line = br.readLine()) != null) {
       String[] res = line.split(" ");
       sum = sum + Integer.parseInt(res[res.length - 1]);
    }
}

如果字符串始终具有相同的行数,则可以使用这种方法

String LikesDislikes = "Likes: 10
                        Dislikes:10"

String[] lines = LikesDislikes.split("\\n");
            String likes = lines[0];
            String dislikes = lines[1];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM