Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中读取.txt文件中一行上的最后一组数字_Java_Input_Output - Fatal编程技术网

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

如何在Java中读取.txt文件中一行上的最后一组数字,java,input,output,Java,Input,Output,我当前有一个如下所示的文本文件: 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. 我需要读取行中最后一组数字,将它们相加,然后将答案输出到单独的文本文件中。我该怎么办 编辑:预期结果应该是输出文件中的字符串,如下所示: Bob Peach 1000 115 Hugh Mungus 1001

我当前有一个如下所示的文本文件:

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.
我需要读取行中最后一组数字,将它们相加,然后将答案输出到单独的文本文件中。我该怎么办

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

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 LikesDislikes = "Likes: 10
                        Dislikes:10"

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

如果字符串的行数始终相同,则可以这样做

String LikesDislikes = "Likes: 10
                        Dislikes:10"

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

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

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

阅读文件并循环浏览每一行是读者的一项练习。

假设只有提供的信息行项目由单个空格分隔,并且最后一项始终是您想要的数字,您可以阅读文件中的每一行,并在每一行上执行以下操作

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

阅读文件并循环每一行是留给读者的练习。

试试这样的方法

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


试试这样的

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



不幸的是,它总是有不同的行数。不幸的是,它总是有不同的行数。你应该发布你的预期结果,以及到目前为止你尝试了什么?我目前处于困境,但我尝试使用Scanner.nextInt将其指向第一组数字,但是从那以后,我想不出如何让它使用最后一组。只要再打一次Scanner.nextInt。你是什么意思,phatfingers?我现在已经包括了我的解释。@Dacnomanic砖墙比混凝土好;-你试过我的解决办法吗?顺便说一句,这与罗杰的建议是一致的……你应该公布你的预期结果,以及到目前为止你尝试了什么?我目前正处于困境,但我尝试使用Scanner.nextInt将其指向第一组数字,但是从那以后,我想不出如何让它使用最后一组。只要再打一次Scanner.nextInt。你是什么意思,phatfingers?我现在已经包括了我的解释。@Dacnomanic砖墙比混凝土好;-你试过我的解决办法吗?顺便说一句,这与Roger的建议是一致的……我想我遗漏了一些东西,因为每当我尝试使用它进行编译时,我都会收到一个错误,说“找不到符号-行”。@Dacnomaniac,在这个示例中,行是您从文件中为每行读取的字符串。@Dacnomaniac,您可以在Plirkee的示例中看到行的来源。我想我遗漏了一些东西,因为每当我尝试使用它进行编译时,我都会收到一个错误消息“找不到符号-行”。@Dacnomaniac,在这个示例中,行将是您从文件中为每行读取的字符串。@Dacnomaniac,您可以在Plirkee的示例中看到线条的来源。@Piklee在熟睡之后,我尝试了您的解决方案,但使用了scanner类的一部分,但它并没有像我预期的那样工作,仍然将点的总和输出为0。请参阅“编辑”以查看它现在的外观。@Dacnomaniac如果您正在使用scanner。。。那么这不完全是我的解决方案,是吗?另外,你发布的是部分代码。。。从中看不到输入变量是什么。。。我们只能猜测你的代码出了什么问题。我建议调试时使用断点,在每次迭代时打印line和splitLine[]以及total的值,这样您就会发现确切的问题。。。并且可能会在不需要任何外部帮助的情况下修复它…@Piklee在使用它之后,我尝试了您的解决方案,但使用了scanner类的部分内容,但是它没有按照我的预期工作,并且仍然将点的总和输出为0。请参阅“编辑”以查看它现在的外观。@Dacnomaniac如果您正在使用scanner。。。那么这不完全是我的解决方案,是吗?另外,你发布的是部分代码。。。从中看不到输入变量是什么。。。我们只能猜测你的代码出了什么问题。我建议调试时使用断点,在每次迭代时打印line和splitLine[]以及total的值 n-这样你就会找到确切的问题。。。而且可能会在不需要任何外部帮助的情况下修复它。。。