2016-01-18 147 views
0

我想知道是否有方法將字符串與文本文件進行比較以獲得最佳答案。 例子: 我們有這個文本文件:將當前字符串與文本文件進行比較Java

BANANA 
BANTER 
APPLE 
BASKET 
BASEBALL 

和當前字符串是:B.N ...(用點是未知字符)。有沒有辦法立即得到一個數組或散列圖與可能的字母(所以A,T和E)的文本文件?

我認爲我該做的事: 我已經成功地將文本文件的每一行都放在一個數組列表中。我應該將當前字符串與數組列表中的可能答案進行比較,並將該字中的每個字符放在點的位置,並將其放入新的數組列表中。

在此先感謝。

+1

發佈您到目前爲止所嘗試的內容 – Shriram

+2

聽起來像學校項目,到目前爲止您的嘗試代碼是什麼? – LeChosenOne

+0

這就像是一個拼寫檢查算法,還是一個自動完成算法?閱讀Aho-Corasick算法可能是朝着正確方向邁出的一步。 –

回答

2

您可以嘗試使用正則表達式。您當前的字符串「B.N ...」必須翻譯成模式,您將與文本文件中存在的其他字詞匹配。你可以在正則表達式here上找到一個教程。

這裏有一個小例子:

public class RegexPlayground { 
    public static void main(String[] args){ 
     Pattern pattern=Pattern.compile("B.N..."); 
     String word="BANANA"; 
     Matcher matcher = pattern.matcher(word); 
     if(matcher.find()){ 
      System.out.println("Found matching word \""+word+"\""); 
     } 
     word="BASKET"; 
     matcher = pattern.matcher(word); 
     if(matcher.find()){ 
      System.out.println("Found matching word \""+word+"\""); 
     }else{ 
      System.out.println("No match on word \""+word+"\""); 
     } 
    } 
} 

輸出:

找到匹配詞 「BANANA」

不匹配的 「菜籃子」 字

所以整體程序的邏輯應該是這樣的:

+0

感謝您的回答。完美工作! –

相關問題