2012-03-29 90 views
4

我已經做了一個電話帳單系統,需要輸入所調用的電話號碼,呼叫日期和呼叫長度。它將它保存到一個文本文件中。我無法做的是搜索電話號碼的文本文件。Java搜索一個文本文件

My coding

+0

問題在哪裏? – 2012-03-29 13:08:08

+1

它看起來像你可以在文件中讀取。這樣做,建立一個呼叫對象列表,並可能把它們放到一個電話號碼地圖列表的調用。然後查找/搜索地圖中的數字。 (Phone Phone,phoneList); – Thomas 2012-03-29 13:10:51

回答

4

只是做線性搜索(遍歷您的電話清單):

public static List<Phone> searchPhone(final String phoneNumber, final List<Phone> phoneList) { 
    List<Phone> matchedPhone = new ArrayList<Phone>(); 

    for(Phone phone: phoneList) { 
     if (phone.getphoneNumber().equals(phoneNumber)) { 
      matchedPhone.add(phone); 
     } 
    } 

    return matchedPhone; 
} 

也可讀性,不要讓你的方法參數作爲輸出。它不是好的做法,所以你應該改變你的方法來自:

static void readList(List<Phone> phoneListIn) { 
} 

到:

static List<Phone> readList(final String fileName) { 
    } 

輸出參數應避免儘可能您可以

+0

; ';'的行出現錯誤預期。雖然它已經有了。 – 2012-03-29 18:21:56

+0

對不起,我使用不同的語法foreach循環(這是Qt sytanx),我現在更新answser,你可以使用foreach循環或正常循環。 for(int i = 0; i 2012-03-30 07:47:25

2

執行Collections.sort(List list);

然後執行Collections.binarySearch(List list, Object key).這應該有效地實現搜索。