java实现查找源字符串中子串出现的位置,并在第一个子串后标记(1),第二个子串后标
时间: 2023-05-04 15:02:18 浏览: 91
java实现查找源字符串中子串出现的位置可以使用String类的indexOf方法。该方法可以在源字符串中查找给定子串的位置,如果找到则返回子串的起始索引,如果没有找到则返回-1。
为了在第一个子串后标记(1),我们可以先找到第一个子串的起始索引,然后在源字符串中插入标记字符串,标记字符串可以使用字符串拼接来实现。代码如下:
```
String source = "This is a source string";
String subStr = "is";
int index = source.indexOf(subStr);
if (index != -1) {
String mark = "(1)";
String target = source.substring(0, index + subStr.length()) + mark + source.substring(index + subStr.length());
System.out.println(target);
}
```
上述代码找到第一个子串的起始索引后,使用子串的长度加上起始索引得到子串的结束索引,然后将标记字符串插入到源字符串的子串后。最后打印出新的字符串可以得到如下输出:
```
This (1)is a source string
```
为了在第二个子串后标记(2),我们可以继续使用indexOf方法查找第二个子串的位置,并使用上述方式插入标记字符串。代码如下:
```
String source = "This is a source string with is twice";
String subStr = "is";
int index = source.indexOf(subStr);
int count = 1;
while (index != -1) {
String mark = "(" + count + ")";
String target = source.substring(0, index + subStr.length()) + mark + source.substring(index + subStr.length());
source = target;
index = source.indexOf(subStr, index + subStr.length() + mark.length());
count++;
}
System.out.println(source);
```
上述代码使用一个循环来查找每个子串的位置并插入标记字符串。在插入标记字符串后,需要将源字符串更新为新的字符串继续查找下一个子串的位置。在循环中使用一个计数器来记录已经出现的子串的数量,并将计数器作为标记字符串的后缀。最后打印出新的字符串可以得到如下输出:
```
This (1)is a source string with (2)is twice
```