我有一个字符串,例如 a="1.1"
和一个数组列表,例如 list
,其中包含字符串:"1.1.1.1", "1.1.2.4","1.2,1.3","1.5.1.1"
现在,我想从这个数组列表中获取字符串,其中开头包含字符串 a="1.1",这意味着 a 是该字符串的子字符串,需要从头开始匹配。
因此,对于这种情况,答案将是 1.1.1.1
和 1.1.2.4
,但不是 1.5.1.1
,因为这里 1.1 不是在开始时。
我知道如何实现这一点,但我认为我的解决方案效率不够高,对于大型数组列表,需要更多的处理时间。
我的方法: 对数组列表和每个字符串运行 for 循环,从开头裁剪字符串,并检查裁剪后的字符串是否与 a 相等。
但是如果我想对一个大型数组列表的多个字符串重复此操作,我认为这不是一个好的解决方案。
有什么想法吗?我将非常感谢您的帮助。
最佳答案
此方法有效:
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;
}
如果你可以使用Java 8,它会更短:
public static List<String> findWithPrefixJava8(List<String> list, String prefix) {
return list.stream()
.filter(str -> str.startsWith(prefix))
.collect(Collectors.toList());
}
关于java - 查找 Arraylist 中包含子字符串的所有字符串的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30074316/