簡體   English   中英

在java中將單詞分成兩個分區

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM