Rom*_*omi 26 java regex search arraylist
我想在arraylist中搜索一个字符串.我的ArrayList包含:
ArrayList <String> list = new ArrayList();
list.add("behold");
list.add("bend");
list.add("bet");
list.add("bear");
list.add("beat");
list.add("become");
list.add("begin");
Run Code Online (Sandbox Code Playgroud)
现在我想搜索"bea"它,它应该返回一个包含"bear"和的列表"beat".我该如何实现它?
Abh*_*hek 25
List <String> list = new ArrayList();
list.add("behold");
list.add("bend");
list.add("bet");
list.add("bear");
list.add("beat");
list.add("become");
list.add("begin");
List <String> listClone = new ArrayList<String>();
for (String string : list) {
if(string.matches("(?i)(bea).*")){
listClone.add(string);
}
}
System.out.println(listClone);
Run Code Online (Sandbox Code Playgroud)
Udo*_*eld 19
遍历您的列表并执行包含或开始.
ArrayList<String> resList = new ArrayList<String>();
String searchString = "bea";
for (String curVal : list){
if (curVal.contains(searchString)){
resList.add(curVal);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以将其包装在方法中.包含检查它是否在列表中.你也可以去开始.
seb*_*kem 12
如今,Java 8允许一个单行的功能解决方案,它比公认的解决方案更清晰,更快速,更简单:
List<String> list = new ArrayList<>();
list.add("behold");
list.add("bend");
list.add("bet");
list.add("bear");
list.add("beat");
list.add("become");
list.add("begin");
List<String> matches = list.stream().filter(it -> it.contains("bea")).collect(Collectors.toList());
System.out.println(matches); // [bear, beat]
Run Code Online (Sandbox Code Playgroud)
使用java.util.HashSet可能更容易.例如:
List <String> list = new ArrayList<String>();
list.add("behold");
list.add("bend");
list.add("bet");
//Load the list into a hashSet
Set<String> set = new HashSet<String>(list);
if (set.contains("bend"))
{
System.out.println("String found!");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
132785 次 |
| 最近记录: |