如何在Java中搜索并获取包含特定字符串的所有子串,将其存储为一个列表输出?
时间: 2024-12-18 21:36:25 浏览: 4
在Java中,你可以使用`String`类提供的`split()`方法结合`ArrayList`来完成这个任务。以下是一个简单的示例,假设我们有一个字符串`mainString`,并且你想找到所有包含特定子串`substringToFind`的子串:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
String mainString = "Hello, world! This is a test string.";
String substringToFind = "is";
List<String> matchingSubstrings = findMatchingSubstrings(mainString, substringToFind);
System.out.println("Matching substrings:");
for (String match : matchingSubstrings) {
System.out.println(match);
}
}
public static List<String> findMatchingSubstrings(String str, String target) {
List<String> matches = new ArrayList<>();
if (target.isEmpty()) return matches; // 如果目标为空,则直接返回空列表
int start = 0;
while ((start = str.indexOf(target, start)) != -1) { // 使用indexOf查找子串的位置
matches.add(str.substring(start, start + target.length())); // 添加到结果列表
start += target.length(); // 更新开始位置以便下一次查找从当前字符之后开始
}
return matches;
}
}
```
当你运行这段代码,它会输出包含子串"is"的所有子串。如果`substringToFind`不在`mainString`中,列表将保持为空。
阅读全文