java中求取一个字符串中子串的全部位置
时间: 2024-12-06 09:22:26 浏览: 7
在Java中,如果你想查找一个字符串中子串的所有出现位置,可以使用`indexOf()`或`lastIndexOf()`方法配合循环来实现。这两个方法会返回子串第一次或最后一次出现的位置,如果没有找到则返回-1。
例如,假设你想找出`"target"`在`"main target search target again"`中的所有索引位置:
```java
public static List<Integer> findSubstringPositions(String mainStr, String subStr) {
List<Integer> positions = new ArrayList<>();
int index = mainStr.indexOf(subStr);
while (index != -1) { // 当找到子串时不等于-1
positions.add(index); // 添加当前索引
index = mainStr.indexOf(subStr, index + 1); // 继续从下一个位置寻找
}
return positions;
}
// 使用示例
String mainStr = "main target search target again";
String subStr = "target";
List<Integer> positions = findSubstringPositions(mainStr, subStr);
System.out.println(positions); // 输出 [0, 11]
```
阅读全文