Java中,在字符串“abcde”中删除指定字符串"abc"怎么写效率最高
时间: 2023-05-12 21:06:19 浏览: 182
可以使用Java中的replace方法,将指定字符串替换为空字符串即可。
例如:
String str = "abcde";
str = str.replace("abc", "");
System.out.println(str);
输出结果为:"de"。
这种方法的效率比较高,因为它只需要遍历一次字符串即可完成删除操作。
相关问题
C语言实现:实现求字符串长度的函数,例如给定字符串"abc"返回3;给定字符串"abcde"返回5
在C语言中,可以使用标准库函数`strlen()`来计算字符串的长度。这个函数定义在`string.h`头文件中,它接收一个字符数组作为输入,并返回数组中从第一个字符到'\0'终止符之间的非空字符的数量。
下面是一个简单的例子,展示了如何声明和使用`strlen()`函数:
```c
#include <stdio.h>
#include <string.h> // 包含strlen函数
// 定义一个求字符串长度的函数
int string_length(const char *str) {
return strlen(str); // 直接调用strlen并返回结果
}
int main() {
const char* str1 = "abc";
int length1 = string_length(str1);
printf("Length of '%s': %d\n", str1, length1);
const char* str2 = "abcde";
int length2 = string_length(str2);
printf("Length of '%s': %d\n", str2, length2);
return 0;
}
```
在这个示例中,`main()`函数中分别对两个字符串调用了`string_length()`函数,并打印出各自字符串的长度。
用C语言写:去掉一个字符串中除头部和尾部空格外的所有空格。 输入: 占一行(注:输入的字符串长度不会超过80) 输出: 占一行 例如: abc de abcde
在C语言中,你可以使用两个指针分别指向字符串的首尾,然后逐字符遍历,遇到非空格就更新对应的指针位置,直到两者相遇。以下是相应的代码实现:
```c
#include <stdio.h>
#include <string.h>
// 函数声明,去除字符串两端及内部多余空格
void removeSpaces(char *str);
int main() {
char str[81]; // 定义一个足够大的数组接收输入
fgets(str, sizeof(str), stdin); // 从标准输入获取字符串,包括换行符
// 调用函数并输出结果
removeSpaces(str);
printf("%s\n", str);
return 0;
}
// 去除字符串两端及内部多余空格的函数
void removeSpaces(char *str) {
int i = 0, j = strlen(str) - 1; // 初始化头尾指针
while (i < j && str[i] == ' ') i++; // 移动到第一个非空格字符
while (j > i && str[j] == ' ') j--; // 移动到最后一个非空格字符
// 如果头尾还有空格,复制非空格字符
if (i < j) {
memmove(str, &str[i], (j-i+1) * sizeof(char));
}
str[j+1] = '\0'; // 结束字符串
}
```
在这个代码中,`removeSpaces`函数会找到并移动到字符串的第一个非空格字符和最后一个非空格字符,然后使用`memmove`函数将它们之间的内容复制回原位置,最后删除多余的空格。
阅读全文