我正在制作文件输入和文本输出代码。 我包含了input.txt,文本内容就像下面的
4
100 Watched
2 Key holders
3 Stamps
30 Data structure textbooks
//entered between every number
我喜欢输出结果是" Key holder" 但在我的代码中,输出是" Key"
我不知道如何打印"持有人"钥匙旁边。 当然我认为原因是因为我在每个" "看到了。那我怎么能用只有两个分区来切割字符串,由整数和右边组成?
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);
}
}
}
答案 0 :(得分:3)
String.split()有一个重载,它限制了将字符串拆分成多少部分。在这种情况下,你只需要;
temp.split(" ", 2)
答案 1 :(得分:0)
修复程序的最佳方法如下。不使用term.split(" ")
,而是在字符串中找到第一个space
的位置,并使用该位置将输入行拆分为两个。输入行的第一部分将是您要解析的数字,拆分的第二部分将是您要打印的行。
例如:
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) {
}
}