我想知道是否有办法将String与文本文件进行比较以获得最佳答案。 例: 我们在文本文件中有这个:
BANANA
BANTER
APPLE
BASKET
BASEBALL
并且当前字符串是:B.N ...(点是未知字符)。有没有办法立即从文本文件中获取带有可能字母(如A,T和E)的数组或散列图?
我认为我应该做的事情: 我已经设法在arraylist中获取文本文件的每一行。我应该将当前的String与arraylist中的可能答案进行比较,并将该单词中的每个字符放在点的位置并将其放入新的arraylist中。
提前致谢。
答案 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
}
}