java子串在父串出现的所有位置
时间: 2024-02-05 17:12:31 浏览: 66
可以使用Java中的String类的indexOf()和substring()方法来实现查找子串在父串中出现的所有位置。
具体实现方法如下:
```java
public static List<Integer> findSubstring(String parent, String child) {
List<Integer> positions = new ArrayList<>();
int index = parent.indexOf(child);
while (index != -1) {
positions.add(index);
index = parent.indexOf(child, index + 1);
}
return positions;
}
```
这个方法会返回一个包含所有匹配位置的列表,如果没有匹配,返回一个空列表。
相关问题
java后台实验三 字符串模式匹配 要求1.找出子串在父串首次出现的位置2.子串在父串出现的所有位置.3将子串在父串的字符替换成新串。4 用测试类完成。、
好的,我会为你详细讲解Java字符串模式匹配的实现过程,并回答你的四个问题:
1. 找出子串在父串首次出现的位置:
可以使用字符串的 `indexOf()` 方法来找到子串在父串中第一次出现的位置。示例代码如下:
```java
String parentStr = "Hello world!";
String subStr = "world";
int index = parentStr.indexOf(subStr);
System.out.println("子串在父串中首次出现的位置为:" + index);
```
输出结果为:`子串在父串中首次出现的位置为:6`
2. 子串在父串出现的所有位置:
可以使用 `indexOf()` 方法和循环语句来找到子串在父串中所有出现的位置。示例代码如下:
```java
String parentStr = "Hello world, Hello Java, Hello Python!";
String subStr = "Hello";
int index = parentStr.indexOf(subStr);
while (index != -1) {
System.out.println("子串在父串中出现的位置为:" + index);
index = parentStr.indexOf(subStr, index + 1);
}
```
输出结果为:
```
子串在父串中出现的位置为:0
子串在父串中出现的位置为:13
子串在父串中出现的位置为:25
```
3. 将子串在父串的字符替换成新串:
可以使用 `replace()` 方法将子串在父串中的字符替换成新的字符串。示例代码如下:
```java
String parentStr = "Hello world!";
String subStr = "world";
String newStr = "Java";
String result = parentStr.replace(subStr, newStr);
System.out.println("替换后的字符串为:" + result);
```
输出结果为:`替换后的字符串为:Hello Java!`
4. 用测试类完成:
可以创建一个测试类,分别测试上述三个方法的实现是否正确。示例代码如下:
```java
public class TestString {
public static void main(String[] args) {
String parentStr = "Hello world, Hello Java, Hello Python!";
String subStr = "Hello";
String newStr = "Hi";
// 测试子串在父串首次出现的位置
int index = parentStr.indexOf(subStr);
System.out.println("子串在父串中首次出现的位置为:" + index);
// 测试子串在父串出现的所有位置
index = parentStr.indexOf(subStr);
while (index != -1) {
System.out.println("子串在父串中出现的位置为:" + index);
index = parentStr.indexOf(subStr, index + 1);
}
// 测试将子串在父串的字符替换成新串
String result = parentStr.replace(subStr, newStr);
System.out.println("替换后的字符串为:" + result);
}
}
```
输出结果为:
```
子串在父串中首次出现的位置为:0
子串在父串中出现的位置为:0
子串在父串中出现的位置为:13
子串在父串中出现的位置为:25
替换后的字符串为:Hi world, Hi Java, Hi Python!
```
希望以上内容能够帮到你!
1.找出子串在父串首次出现的位置2.子串在父串出现的所有位置.3将子串在父串的字符替换成新串。4 用测试类完成。
好的,我会分别回答你的四个问题:
1. 找出子串在父串首次出现的位置:
可以使用字符串的 `indexOf()` 方法来找到子串在父串中第一次出现的位置。示例代码如下:
```java
String parentStr = "Hello world!";
String subStr = "world";
int index = parentStr.indexOf(subStr);
System.out.println("子串在父串中首次出现的位置为:" + index);
```
输出结果为:`子串在父串中首次出现的位置为:6`
2. 子串在父串出现的所有位置:
可以使用 `indexOf()` 方法和循环语句来找到子串在父串中所有出现的位置。示例代码如下:
```java
String parentStr = "Hello world, Hello Java, Hello Python!";
String subStr = "Hello";
int index = parentStr.indexOf(subStr);
while (index != -1) {
System.out.println("子串在父串中出现的位置为:" + index);
index = parentStr.indexOf(subStr, index + 1);
}
```
输出结果为:
```
子串在父串中出现的位置为:0
子串在父串中出现的位置为:13
子串在父串中出现的位置为:25
```
3. 将子串在父串的字符替换成新串:
可以使用 `replace()` 方法将子串在父串中的字符替换成新的字符串。示例代码如下:
```java
String parentStr = "Hello world!";
String subStr = "world";
String newStr = "Java";
String result = parentStr.replace(subStr, newStr);
System.out.println("替换后的字符串为:" + result);
```
输出结果为:`替换后的字符串为:Hello Java!`
4. 用测试类完成:
可以创建一个测试类,分别测试上述三个方法的实现是否正确。示例代码如下:
```java
public class TestString {
public static void main(String[] args) {
String parentStr = "Hello world, Hello Java, Hello Python!";
String subStr = "Hello";
String newStr = "Hi";
// 测试子串在父串首次出现的位置
int index = parentStr.indexOf(subStr);
System.out.println("子串在父串中首次出现的位置为:" + index);
// 测试子串在父串出现的所有位置
index = parentStr.indexOf(subStr);
while (index != -1) {
System.out.println("子串在父串中出现的位置为:" + index);
index = parentStr.indexOf(subStr, index + 1);
}
// 测试将子串在父串的字符替换成新串
String result = parentStr.replace(subStr, newStr);
System.out.println("替换后的字符串为:" + result);
}
}
```
输出结果为:
```
子串在父串中首次出现的位置为:0
子串在父串中出现的位置为:0
子串在父串中出现的位置为:13
子串在父串中出现的位置为:25
替换后的字符串为:Hi world, Hi Java, Hi Python!
```
阅读全文