45 90 40 30 42 95 64 47 23
14 80 30 84 24 49 16 10 20
我是Java OOP的初学者,这是Txt文件。我必须在每行旁边打印整数的和,然后找出其中最大的和。
我可以读取文件,我试着把每一行都做成一个字符串,但当我把每一行的每一个数字都做成一个整数时,我想不出如何在列结束时停止程序,这样我就可以打印和并转到下一行。
import java.util.Scanner;
import java.io.*;
public class Asst1Problem2{
public static void main(String[] args){
int sum = 0;
int largestSum = 0;
String line = "";
try{
Scanner input = new Scanner(new File("integers2.txt"));
while(input.hasNextLine()){
line = input.nextLine();
System.out.println(line);
}
}
catch(FileNotFoundException fnf){
System.out.print("no file " + fnf);
}
}
}
我本想得到总数,但我做得不对。
Scanner input = new Scanner(new File("integers2.txt"));
int maxSum = -1; //Assuming there are no negative values
while(input.hasNextLine()) {
line = input.nextLine();
String[] splitted = line.split(" "); //Split the spaces from the line
int sum = 0;
for (int i = 0; i < splitted.length; i++) {
int value = Integer.parseInt(splitted[i]); //Convert the string into an integer
sum += value;
}
System.out.println(sum); //This line sum
if (sum > maxSum) {
maxSum = sum;
}
}
System.out.println(maxSum); //The biggest sum
您好,您可以使用循环或流(java 8)来解决这个问题。我还建议您使用try-with-Resources。
如果没有流,可以使用以下示例
public static void main(String[] args) {
int largestSum = 0;
try (Scanner input = new Scanner(new File("integers2.txt"))) {
while (input.hasNextLine()) {
String[] numbers = input.nextLine().split(" ");
int sum = 0;
for (String s : numbers) {
if (s.matches("^\\d+$")) { // check if the element was an integer number.
int i = Integer.parseInt(s);
sum += i;
}
}
System.out.printf("current sum = %s \\n", sum); // print current sum
largestSum = Math.max(sum, largestSum);
}
} catch (FileNotFoundException fnf) {
System.out.print("no file " + fnf.getMessage());
}
System.out.println(largestSum);
}
有关检查字符串是否为整数的更多详细信息
使用java-8流,以下代码应该可以做到:
public static void main(String[] args) {
int largestSum = 0;
try (Scanner input = new Scanner(new File("integers2.txt"))) {
while (input.hasNextLine()) {
String[] numbers = input.nextLine().split(" ");
int sum = Arrays
.stream(numbers)
.filter(s -> s.matches("^\\d+$"))
.mapToInt(s -> Integer.parseInt(s))
.sum();
System.out.printf("current sum = %s \\n", sum); // print current sum
largestSum = Math.max(sum, largestSum);
}
} catch (FileNotFoundException fnf) {
System.out.print("no file " + fnf.getMessage());
}
System.out.println(largestSum);
}
问题内容: 如何从.txt文件读取和显示数据? 问题答案: 然后,您可以使用in.readLine(); 一次读取一行。要读到最后,可以这样编写while循环:
我正在试着阅读我的文件的每一行,其中包含一个用户名列表,并用它创建一个登录系统。我正在尝试实现一个基本的登录系统,它的用户名存储在.txt文件中,但我的代码不工作,我不知道为什么。我认为问题出在检查用户名的循环中。 这是我的代码,但它不起作用,只是打印总是失败: 有什么想法吗?
所以,我试图让我的程序从文本文件中读入一个结构数组,它编译得很好,但看起来并没有真正读入值?...我不知道为什么。这是代码的相关部分: 这是txt文件(标题:Planets.txt) 水星120 50 500 12.1 30 2金星120 50 500 29.1 30 6地球120 50 500 32.2 30 7月亮120 15 50 5.3 30 2火星120 50 500 12.2 30 4
我正试图编写一个程序,读取网络中相互交互的节点列表。它以以下格式写入文本文件: 这表示节点1与节点2和节点3交互,节点2仅与节点3交互,等等。 该程序将能够读取该文件,并将删除任何重复的交互,并且如果我输入节点的名称,将能够向我返回节点与其他节点的交互次数。然而,我对Java非常陌生,我首先尝试让它读入文件,尽管我的代码目前没有读入文件。以下是我迄今为止的代码: 任何关于如何解决此问题的帮助都将不
问题内容: 我会尽量保持清楚,但如果我的问题不完美,请原谅我。我有一个包含多行数据的txt文件。例: 123拉尔夫·玻色20000 200 1 2 256 ed shane 30000 100 2 4 … 我需要按顺序读取每一行,并将其传递回单独类中的方法进行处理。我知道如何通过使用StringTokenizer将每一行分解为元素。 但是,我不确定如何一次读取一行,将元素传递回另一类,然后在完成处
我一直在互联网上寻找帮助,但我找不到,所以我求助于发帖。 我有一个txt文件,格式如下 1/2 0 1/6 6/11 1/6 2/10 我需要读取这些单独的分数,并输入分子和分母的函数称为BigFraction(num,denom)。 我调用读取器并将其作为字符串输出。然后,我在空格上进行拆分,以获得作为字符串的各个分数,并将它们输入到我的助手方法strToBF中,该方法在正斜杠上进行拆分,并输入