将当前字符串与文本文件Java进行比较

时间:2016-01-18 16:01:29

标签: java string-comparison

我想知道是否有办法将String与文本文件进行比较以获得最佳答案。 例: 我们在文本文件中有这个:

BANANA
BANTER
APPLE
BASKET
BASEBALL

并且当前字符串是:B.N ...(点是未知字符)。有没有办法立即从文本文件中获取带有可能字母(如A,T和E)的数组或散列图?

我认为我应该做的事情: 我已经设法在arraylist中获取文本文件的每一行。我应该将当前的String与arraylist中的可能答案进行比较,并将该单词中的每个字符放在点的位置并将其放入新的arraylist中。

提前致谢。

1 个答案:

答案 0 :(得分: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”

     

单词“BASKET”上没有匹配

所以程序的整体逻辑应该是这样的:

String regex = getRedex(); // This is your B.N...
Pattern pattern = Pattern.compile(regex);
List<String> words=readFromFile(); // The list of words in the text file
for(String word: words){
    Matcher matcher = pattern.matcher(word);
    if(matcher.find()){
        // Match found
        // do what you need to do here
    }else{
        // Same here
    }
}