JAVA编写一个程序,给定两个字符串s和t,求串t在串s中不重叠出现的次数,如果不是子串则返回0.例如s=“aaaab”,t=“aa”,则t在s中出现了两次。 具体设计思路如下:
时间: 2024-05-08 18:21:37 浏览: 94
可以使用字符串的indexOf()方法来查找子串在父串中的位置。从父串的第一个字符开始,不断查找子串,每次查找到子串后,记录下子串在父串中的位置,然后从这个位置的下一个字符开始继续查找子串,直到查找不到为止。最后统计记录的位置数即可求得子串在父串中不重叠出现的次数。
以下是具体的Java代码实现:
```
public class SubstringCount {
public static int count(String s, String t) {
int count = 0;
int index = s.indexOf(t);
while (index != -1) {
count++;
index = s.indexOf(t, index + t.length());
}
return count;
}
public static void main(String[] args) {
String s = "aaaab";
String t = "aa";
int count = count(s, t);
System.out.println("子串在父串中不重叠出现的次数为:" + count);
}
}
```
输出结果为:
```
子串在父串中不重叠出现的次数为:2
```
相关问题
JAVA编写一个程序,给定两个字符串s和t,求串t在串s中不重叠出现的次数
以下是Java代码实现:
```
public class StringMatch {
public static int countMatches(String s, String t) {
int count = 0;
int index = s.indexOf(t); // 获取t在s中第一次出现的位置
while (index != -1) {
count++; // 计数器加1
index = s.indexOf(t, index + 1); // 查找下一个位置
}
return count;
}
public static void main(String[] args) {
String s = "abcdeabcdabc";
String t = "abc";
int count = countMatches(s, t);
System.out.println("字符串t在字符串s中不重叠出现的次数为:" + count);
}
}
```
代码说明:
1. `countMatches` 方法接受两个字符串参数 `s` 和 `t`,返回串 `t` 在串 `s` 中不重叠出现的次数。
2. 使用 `indexOf` 方法获取 `t` 在 `s` 中第一次出现的位置。如果 `indexOf` 方法返回 `-1`,表示 `t` 未出现在 `s` 中,则直接返回计数器 `count`。
3. 如果 `t` 在 `s` 中出现了,则计数器 `count` 加 1,并使用 `indexOf` 方法查找下一个位置。
4. 循环直到 `indexOf` 方法返回 `-1`,表示 `t` 已经在 `s` 中全部查找完毕。
5. 在 `main` 方法中测试 `countMatches` 方法。
java编写一个实验程序,给定两个字符串s和t,求串t在串s中不重叠出现的次数
好的,这是一个计算问题,我可以帮您回答。以下是Java编写的实验程序,用于计算给定两个字符串s和t,求串t在串s中不重叠出现的次数:
```java
public class Main {
public static void main(String[] args) {
String s = "abcdabcdabcdabcd"; // 串s
String t = "bc"; // 串t
int count = 0;
int index = 0;
while ((index = s.indexOf(t, index)) != -1) {
count++;
index += t.length();
}
System.out.println("串t在串s中不重叠出现的次数为:" + count);
}
}
```
请根据您的需求修改字符串s和t的值,以获取正确的计算结果。
阅读全文