Tar*_*rek 0 java regex string arraylist
我有一个字符串,比如说a="1.1"和一个arraylist,比如说list,它有字符串:"1.1.1.1", "1.1.2.4","1.2,1.3","1.5.1.1"
现在,我想从这个arraylist中获取字符串,它在开头包含字符串a ="1.1",这意味着a是这些字符串的子字符串,需要从头开始匹配.
因此,对于这种情况,答案将是1.1.1.1,1.1.2.4但不是1.5.1.1这里1.1不是在开头.
我知道,如何实现这一点,但我认为我的解决方案效率不高,对于大型arraylist,它需要更多的处理时间.
我的方法: 为arraylist和每个字符串运行for循环,从头开始用a的长度裁剪字符串,并检查裁剪的字符串是否等于a.
但是如果我想为一个大型的arraylist重复几个字符串,我认为这不是一个好的解决方案.
任何的想法?我将非常感谢你的帮助.
这种方法可行:
public static List<String> findWithPrefix(List<String> list, String prefix) {
List<String> result = new ArrayList<>();
for(String s : list)
if(s.startsWith(prefix))
result.add(s);
return result;
}
Run Code Online (Sandbox Code Playgroud)
如果你可以使用Java 8,它会更短:
public static List<String> findWithPrefixJava8(List<String> list, String prefix) {
return list.stream()
.filter(str -> str.startsWith(prefix))
.collect(Collectors.toList());
}
Run Code Online (Sandbox Code Playgroud)