java - 查找所有包含关键字的子字符串

标签 java substring

我想要find all the substring一个字符串 contains a key word

例如:“这是字符串中的keyword”。

输出:关键字,这是关键字,字符串中的关键字,是...中的关键字

我想先找到所有子字符串,然后尝试一一过滤。但我认为这将是非常糟糕的解决方案。

您能给我一些建议吗?非常感谢。

我已进行编辑以查找标记序列。

最佳答案

试试这个:

String str = "abcdefkeybncv...";
String key = "key";
int index = str.indexOf(key);
ArrayList<String> sub = new ArrayList<String>();
for (int i = 0; i < str.length(); i++) {
    for (int j = 0; j <= str.length() - i; j++) {
        String s = str.substring(i, i+j);
        if(s.indexOf(key) >= 0){
            sub.add(s);
        }
    }
}
System.out.println(sub);

上述代码的输出:

[abcdefkey, abcdefkeyb, abcdefkeybn, abcdefkeybnc, abcdefkeybncv, abcdefkeybncv., abcdefkeybncv.., abcdefkeybncv..., bcdefkey, bcdefkeyb, bcdefkeybn, bcdefkeybnc, bcdefkeybncv, bcdefkeybncv., bcdefkeybncv.., bcdefkeybncv..., cdefkey, cdefkeyb, cdefkeybn, cdefkeybnc, cdefkeybncv, cdefkeybncv., cdefkeybncv.., cdefkeybncv..., defkey, defkeyb, defkeybn, defkeybnc, defkeybncv, defkeybncv., defkeybncv.., defkeybncv..., efkey, efkeyb, efkeybn, efkeybnc, efkeybncv, efkeybncv., efkeybncv.., efkeybncv..., fkey, fkeyb, fkeybn, fkeybnc, fkeybncv, fkeybncv., fkeybncv.., fkeybncv..., key, keyb, keybn, keybnc, keybncv, keybncv., keybncv.., keybncv...]

关于java - 查找所有包含关键字的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18365373/

相关文章:

java - 如何避免在没有 try catch 的情况下抛出异常时线程池中的线程死亡

java - Cobertura 检查和验证

javascript - 正则表达式 : Match line of string that does not contain [ character

Java多重分割-保留分隔符

java - 将 ArrayList 写入/读取文件的奇怪问题

java - 如何使用java读取php echo语句

Java API 与框架?

r - 使用R从字符串中提取特定格式的子字符串(ID、代码)

javascript - 如何使用 javascript 或 jquery 隐藏某个字符后的字符串结尾

c++ - 子字符串丢失字符串输入