如何输入单词的部分字母才能找到这个单词?
例如: 我有一个字符串数组
String[] s = {"Cartoon", "Cheese", "Truck", "Pizza"};
如果我输入部分字母,例如" ca"," Che"或" piz"
然后我可以找到列表中的整个单词。
由于
答案 0 :(得分:3)
stringValue.contains("string that you wanna search");
.contains
将执行此操作,迭代循环并继续在ArrayList<String>
中添加匹配的单词。
对于java中的字符串,这可能是一个很好的read。
.contains
与mysql中的'%word%'
类似。在java中还有其他函数,如.startsWith
和.endsWith
。你可以使用最适合的东西。
答案 1 :(得分:0)
首先将所有字符串大写或小写,然后使用startsWith()方法。
答案 2 :(得分:0)
您可以使用类似
的内容String userInput = (new Scanner(System.in)).next();
for (String string : s) {
if (string.toLowerCase().contains(userInput.toLowerCase()) return string;
}
请注意,这只会返回列表中包含用户提供的内容的第一个字符串,因此它非常不精确。
答案 3 :(得分:0)
List<String> list = new ArrayList<>();
list.add("Apples");
list.add("Apples1214");
list.add("NotApples");
list.stream().map(String::toLowerCase)
.filter(x->x.startsWith("app"))
.forEach(System.out::println);
如果您只想包含String
,请使用String#contains
答案 4 :(得分:0)
假设你的意思
String[] s = {"Cartoon", "Cheese", "Truck", "Pizza"};
最简单的选择是遍历字符串数组并对每个字符串执行.contains。
for(int i = 0; i < s.length; i++){
if(s[i].contains("car")){
//do something like add to another list.
}
}
这个当然没有采取限制措施。但是使用.toLowerCare或.toUpperCase可以很容易地避免这种情况。
答案 5 :(得分:0)
尝试此基本逻辑
Scanner sc=new Scanner(System.in);
String[] s = {"Cartoon", "Cheese", "Truck", "Pizza",""};
System.out.println("Enter Characters");
String matchCharStr = sc.next();
for (int i = 0; i < s.length; i++) {
if (s[i].toLowerCase().contains(matchCharStr.toLowerCase())) {
System.out.println(s[i]);
}
}