在字符串中搜索子字符串
Searching in a string a substring
我有一个字符串 (Str),其中的短语由一个字符分隔(为了简单理解,我们将其定义为“%”)。我想在此字符串 (Str) 中搜索包含单词(如 "dog")的短语,并将该短语放入新字符串
我想知道 good/great 的方法。
Str 是我要搜索的字符串,"Dog" 是我要搜索的词,%
是行分隔符。
我已经有了 reader、解析器以及如何保存该文件。如果有人能帮我找到一种简单的搜索方式,我将不胜感激。我可以做到,但我认为它太复杂了,而实际的解决方案却非常简单。
我曾考虑搜索 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"
预期输出:
Where is my dog, john ? // your dog is on the table // Have a nice
dog"
试试这个代码。
解决方案是从“%”拆分,然后检查它是否包含我们需要的确切单词。
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);
}
您可以使用:
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
给出:
Where is my dog, john ? // your dog is on the table // Have a nice dog
- 这里使用
%
将String拆分成数组
- 数组过滤,检查是否拆分句
是否包含"dog"。
- 使用
//
. 将生成的字符串连接成一个字符串
我有一个字符串 (Str),其中的短语由一个字符分隔(为了简单理解,我们将其定义为“%”)。我想在此字符串 (Str) 中搜索包含单词(如 "dog")的短语,并将该短语放入新字符串
我想知道 good/great 的方法。
Str 是我要搜索的字符串,"Dog" 是我要搜索的词,%
是行分隔符。
我已经有了 reader、解析器以及如何保存该文件。如果有人能帮我找到一种简单的搜索方式,我将不胜感激。我可以做到,但我认为它太复杂了,而实际的解决方案却非常简单。
我曾考虑搜索 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"
预期输出:
Where is my dog, john ? // your dog is on the table // Have a nice dog"
试试这个代码。
解决方案是从“%”拆分,然后检查它是否包含我们需要的确切单词。
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);
}
您可以使用:
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
给出:
Where is my dog, john ? // your dog is on the table // Have a nice dog
- 这里使用
%
将String拆分成数组
- 数组过滤,检查是否拆分句 是否包含"dog"。
- 使用
//
. 将生成的字符串连接成一个字符串