java - 查找 Arraylist 中包含子字符串的所有字符串的有效方法

标签 java regex string arraylist

我有一个字符串,例如 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.11.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/

相关文章:

string - Bash:无法将字符串附加到现有字符串 - 它似乎覆盖了该字符串的开头

string - 显示 haskell 中重复的单词列表

java - 如何使用 java 在 Selenium WebDriver 项目中表示页面对象导航

java - 谁在 Java 中实现操作系统接口(interface)?

regex - Oracle - PCRE 到 Oracle REGEX

javascript - 如何使用正则表达式完全忽略该行? (前瞻不起作用)

python - 查找 DataFrame 的两个字符串列之间的相似性

java - 间歇性错误 org.hibernate.PersistentObjectException : detached entity passed to persist

java - 通过属性值查找 XML 节点并在 Java 中更新

regex - 实现 Google 搜索运算符