0

我需要有关此代码的帮助。输入存储在一个文本文件中,如下所示:

第一:3 6
第二: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());
  }
  }
}
4

2 回答 2

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 行,那么使用循环使用类似的方法应该不难。

于 2012-09-04T21:56:44.260 回答
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++;
于 2012-09-04T21:45:33.053 回答