2016-01-18 151 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

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

相关问题