假设我有许多单词,例如:(水,面粉,鸡蛋)和(豆类,水,牛奶)
如果用户输入包含任何顺序的所有单词的字符串,则会显示一条消息.比如"我有鸡蛋水和一些面粉" - >"那就是蛋糕".
假设可能有大量的单词集和消息组合要检查用户输入的每个字符串,最有效的方法是什么.
我最初的想法是使用.contains:
for(each-word-set)
{
i = word-set.length;
for(each-word)
{
if(string.contains(word))
{
j++
}
}
if(i == j)
{
//Yes this string contains all words.
}
}
Run Code Online (Sandbox Code Playgroud)
有没有比这更好的方法?
扩展我的评论。还有一些错误。到目前为止我的最终解决方案是:
public class Someclass {
public static void main(String[] args) {
String[] words = { "water", "flour", "eggs", "beans", "water", "milk" };
String[] testStrings = { "water flour eggs beans water milk", "somewhat else",
"wader flour ekks beans water milk" };
for (String string : testStrings) {
boolean found = true;
for (String word : words) {
if (!string.contains(word)) {
found = false;
break;
}
}
if (found) {
System.out.println(string + " - That makes a cake");
} else {
System.out.println(string + " - That makes no cake");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1372 次 |
| 最近记录: |