我有一个字符串(Str),其中的短语用字符分隔(为简单理解,我们将其定义为“%”)。我想在包含一个单词(例如“ dog”)的字符串(Str)中搜索短语,然后将该短语放入新的字符串
我想知道一种好/好方法。
Str是我要搜索的字符串,“ Dog”是我要搜索的单词,%
是行分隔符。
我已经有了阅读器,解析器以及如何保存该文件。如果有人找到我一个简单的搜索方式,我将不胜感激。我可以做到,但是我认为这太复杂了,而实际的解决方案却很容易。
我曾考虑过搜索lastIndexOf("dog")
,然后在Str(0, lastIndexOf("dog")
的子字符串中搜索“%”,然后在第二个%中搜索我要搜索的行。
P.S:Str中可能有两个“ dog”,我希望所有显示“ dog”一词的行都
示例:
Str = " Where is my dog, john ? % your dog is on the table % really thanks john % you're welcome % Have a nice dog"
预期输出:
我的狗在哪儿,约翰? //你的狗在桌子上//祝你好运 狗”
答案 0 :(得分:1)
您可以使用:
String str = "Where is my dog, john ? % your dog is on the table % really thanks john " +
"% you're welcome % Have a nice dog";
String dogString = Arrays.stream(str.split("%")) // String[]
.filter(s -> s.contains("dog")) // check if each string has dog
.collect(Collectors.joining("//")); // collect to one string
给出:
我的狗在哪儿,约翰? //您的狗在桌子上//有一只好狗
%
//
将结果字符串连接成一个字符串。答案 1 :(得分:0)
尝试此代码。
从“%”中拆分解决方案,然后检查其是否包含我们需要的确切字词。
public static void main(String []args){
String str = " Where is my dog, john ? % your dog is on the table % really thanks john % you're welcome % Have a nice dog";
String[] words = str.split("%");
String output = "";
for (String word : words) {
if (word.contains("dog")) {
if(!output.equals("")) output += " // ";
output += word ;
}
}
System.out.print(output);
}