[英]split word into two partition in java
我正在制作文件輸入和文本輸出代碼。 我包含了input.txt,文本內容就像下面一樣
4
100 Watched
2 Key holders
3 Stamps
30 Data structure textbooks
//entered between every number
我喜歡輸出結果是“Key holder”但是在我的代碼中,輸出是“Key”
我不知道如何在Key旁邊打印“holder”這個詞。 當然,我認為原因是因為當看到每一個“”時我拼接了這個詞。 那我怎么能用只有兩個分區來切割字符串,由整數和右邊組成?
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);
}
}
}
String.split()有一個重載,它限制了將字符串拆分成多少部分。 在這種情況下,你只是想要;
temp.split(" ", 2)
修復程序的最佳方法如下。 而不是使用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) {
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.