2016-03-15 38 views
1

我正在创建文件输入和文本输出代码。 我包括input.txt中和文本的内容就像下面在java中将字拆分为两个分区

4 
100 Watched 
2 Key holders 
3 Stamps 
30 Data structure textbooks 
//entered between every number 

,我喜欢做的输出结果是“钥匙扣” ,但在我的代码,输出为“关键”

我不知道如何打印钥匙旁边的“持有人”一词。 当然,我认为其原因是因为当每个“”被看到时我拼接了这个词。那么我怎样才能分割字符串只有两个分区,由整数和右侧?

import java.io.BufferedReader; 
import java.io.FileReader; 

import javax.swing.plaf.basic.BasicInternalFrameTitlePane.MaximizeAction; 

public class Assignment11 { 
    public static void main(String[] args) { 

    try { 
     BufferedReader in = new BufferedReader(new FileReader("input.txt")); 

     String entryString; 
     entryString = in.readLine(); 

     int entryNum = Integer.valueOf(entryString); 

     int min = Integer.MAX_VALUE; 
     String result = null; 
     for(int i = 0; i < entryNum; i++){ 
      String temp; 
      temp = in.readLine(); 

      String entry[] = temp.split(" "); 
      int price = Integer.parseInt(entry[0]); 

      if(price < min){ 
       min = price; 
       result = entry[1]; 
      } 
     } 
     System.out.println(result); 
     in.close(); 
    } catch (Exception e) { 
     System.err.println(e); 
     System.exit(1); 
    } 
    } 
} 
+4

'temp.split(””,2)'? –

+0

它确实有效!谢谢 :) –

回答

3

String.split()有一个超载,它会将字符串拆分成多少部分。在这种情况下,你只需要;

temp.split(" ", 2) 
0

修复程序的最佳方法如下。找到字符串中第一个space的位置,而不是使用term.split(" "),并使用该位置将输入行分成两部分。输入行的第一部分将是要分析的数字,分割的第二部分将是您要打印的行。

例如:

int a = term.indexOf(" "); 
if (a != -1) { 
    try{ 
     int price = Integer.parseInt(term.substring(0, a)); 
     if (price < min) { 
      min = price; 
      result = term.substring(a); 
     } 
    } 
    catch(NumberFormatException e) { 

    } 
}