我需要有关此代码的帮助。 输入存储在如下文本文件中:
First:3 6 Secon:3 9
输出结果为:
First:3 6
The Maximum number is6
The sum is9
Secon:3 9
The Maximum number is9
The sum is12
但我想要的输出应该是:
The Maximum number is6
The sum is12
因此,它仅在第一行应用Math.max()。 并且,它添加了第二行号。
请帮忙。
import java.io.*;
public class cape
{
public static void main(String args[])
{
try{
FileInputStream fstream = new FileInputStream("C:/Users/PC4599/Desktop/cape.txt"); // Open the text file.
DataInputStream in = new DataInputStream(fstream);// Get the object of DataInputStream
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String MyString;
//Read File Line By Line
while ((MyString = br.readLine()) != null)
{
// Print the content on the console
System.out.println (MyString);
Character c = new Character(MyString.charAt(6));
Character c2 = new Character(MyString.charAt(8));
String s = c.toString();
String s2 = c2.toString();
int i = Integer.parseInt(s);
int i2 = Integer.parseInt(s2);
int sum=i+i2;
System.out.println("The Maximum number is"+ Math.max(i, i2));
System.out.println("The sum is"+ sum);
}
//Close the input stream
in.close();
}catch (Exception e){
//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
}
答案 0 :(得分:2)
你可以这样做:
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader(new File("test.txt")));
String[] nums1 = br.readLine().split(":")[1].split(" ");
String[] nums2 = br.readLine().split(":")[1].split(" ");
br.close();
System.out.println("The maximum number is " + Math.max(Integer.parseInt(nums1[0]), Integer.parseInt(nums1[1])));
System.out.println("The sum is " + (Integer.parseInt(nums2[0]) + Integer.parseInt(nums2[1])));
}
如果你的文件只有2行,那么使用循环就不应该采用类似的方法了。
答案 1 :(得分:1)
您可以计算行号并为每行打印正确的内容:
int line = 0;
...
if (line == 0) System.out.println("The Maximum number is"+ Math.max(i, i2));
if (line == 1) System.out.println("The sum is"+ sum);
line++;