选择使用String类或StringBuffer类统计一个子串在整串中出现的次数
时间: 2024-01-09 21:03:10 浏览: 85
建议使用String类。可以使用String类的indexOf方法找到子串出现的位置,然后使用循环来不断查找子串直到找不到为止,统计出现的次数。示例代码如下:
```
String str = "hello world, world is so big!";
String subStr = "world";
int count = 0;
int index = -1;
while ((index = str.indexOf(subStr, index + 1)) != -1) {
count++;
}
System.out.println("子串出现次数为:" + count);
```
如果使用StringBuffer类,需要先将整串转换为StringBuffer对象,然后使用循环和StringBuffer类的indexOf方法查找子串并统计次数。但是因为StringBuffer是可变的,所以在处理较长字符串时可能会占用较多的内存,不如使用String类高效。
相关问题
1、选择使用String类或StringBuffer类统计一个子串在整串中出现的次数 2、创建StringBuffer类对象,赋值为sb1:This is a StringBuffer,完成以下操作 查找匹配字符串ok,查找匹配字符串is,查找is最后出现的位置 获取字符串中第10个位置的字符 添加浮点数1.23到字符串的尾部 删除字符串中”This “ 在”is”后插入 ”hello” 将字符串中”ring”替换成”apple” 将字符串倒序 3、编写一个字符串排序程序
好的,我会回答你的问题。
对于第一个问题,使用String类或StringBuffer类都可以统计一个子串在整串中出现的次数。不过,使用StringBuffer类的效率更高,因为它可以直接对字符串进行修改。以下是使用StringBuffer类实现的示例代码:
```java
StringBuffer s = new StringBuffer("hello world, hello java");
String str = "hello";
int count = 0;
int index = -1;
while ((index = s.indexOf(str, index + 1)) != -1) {
count++;
}
System.out.println(count);
```
对于第二个问题,以下是按照要求完成的代码:
```java
StringBuffer sb1 = new StringBuffer("This is a StringBuffer");
// 查找匹配字符串ok
System.out.println(sb1.indexOf("ok"));
// 查找匹配字符串is
System.out.println(sb1.indexOf("is"));
// 查找is最后出现的位置
System.out.println(sb1.lastIndexOf("is"));
// 获取字符串中第10个位置的字符
System.out.println(sb1.charAt(9));
// 添加浮点数1.23到字符串的尾部
sb1.append(1.23);
System.out.println(sb1);
// 删除字符串中”This “
sb1.delete(0, 5);
System.out.println(sb1);
// 在”is”后插入 ”hello”
int index = sb1.indexOf("is");
sb1.insert(index + 2, "hello");
System.out.println(sb1);
// 将字符串中”ring”替换成”apple”
String str = sb1.toString().replace("ring", "apple");
sb1.replace(0, sb1.length(), str);
System.out.println(sb1);
// 将字符串倒序
sb1.reverse();
System.out.println(sb1);
```
对于第三个问题,以下是一个简单的字符串排序程序的示例代码:
```java
String[] strs = {"apple", "banana", "cat", "dog", "elephant"};
Arrays.sort(strs, (s1, s2) -> s1.compareTo(s2));
for (String str : strs) {
System.out.println(str);
}
```
以上就是我对你提出的问题的回答,希望能够帮到你。
编写一个程序,统计一个子串在整串中出现的次数,例如子串“nba”在整串“nbaabcdefnbaxyzmba”中出现的次数为2。要求使用String或者StringBuffer类的常用方法来计算出现的次数。
可以使用String类的indexOf和substring方法来实现子串的统计,具体代码如下:
```java
public static int countSubstring(String str, String subStr) {
int count = 0;
int index = str.indexOf(subStr); // 查找子串第一次出现的位置
while (index != -1) {
count++; // 统计子串出现次数
index = str.indexOf(subStr, index + subStr.length()); // 继续查找下一个子串的位置
}
return count;
}
```
其中,indexOf方法用于查找子串在整串中第一次出现的位置,如果没有找到则返回-1。substring方法用于获取子串。在循环中,每次将查找位置移动到上一个子串的后面,继续查找下一个子串的位置。最后返回子串出现的次数即可。
阅读全文