string查找字符串
时间: 2025-01-07 18:48:33 浏览: 4
### 查找并操作字符串的方法
#### C语言中删除特定字符的实现
在C语言中,可以通过遍历字符串来创建一个新的不含指定字符的新字符串。下面是一个具体的例子:
```c
#include <stdio.h>
#include <string.h>
void delete_char(char* str, char ch) {
int j = 0;
for (int i = 0; i < strlen(str); ++i) {
if (str[i] != ch) {
str[j++] = str[i];
}
}
str[j] = '\0';
}
// 测试该函数
int main() {
char testStr[] = "example";
printf("Original string: %s\n", testStr);
delete_char(testStr, 'e');
printf("Modified string: %s\n", testStr);
return 0;
}
```
此代码展示了如何定义`delete_char`函数用于移除给定字符[^1]。
#### Java 中查找最后出现位置的方法
对于Java而言,可以利用内置的`String`类提供的方法来进行各种各样的字符串处理工作。例如要找到某子串最后一次出现在源字符串的位置,则可调用`lastIndexOf()`方法:
```java
public class Main {
public static void main(String args[]) {
String sentence = "This is a sample text.";
System.out.println(sentence.lastIndexOf("is")); // 输出9表示"is"最后出现的位置索引为9
}
}
```
这段代码说明了怎样通过`lastIndexOf`获取目标子串最右端匹配处的起始下标[^2]。
#### 字符串分割与提取子串
当涉及到更复杂的字符串解析需求时,在Java里还可以借助于诸如`split()`这样的工具方法完成基于模式(通常是正则表达式)的数据切片作业;而为了取得连续的一段文字片段,应该考虑采用`substring(int beginIndex)` 或者 `substring(int beginIndex,int endIndex)`形式的API接口[^3]:
```java
public class SubstringExample {
public static void main(String[] args){
String originalText="HelloWorld!";
// 获取从第7位开始直到结束的部分
System.out.println(originalText.substring(6));
// 取出介于两个参数之间的部分
System.out.println(originalText.substring(0,5));
}
}
```
上述实例解释了两种不同方式下的子串截取逻辑。
#### 修改已存在的不可变字符串
值得注意的是,尽管看起来像是可以直接改变原有字符串的内容,但实际上由于Java里的`String`被设计成不可更改的对象类型,因此任何试图对其做改动的动作都会返回全新的实例而非原地更新旧有的那个实体。比如将所有的字母转换成小写就需要重新赋值给变量名[^4]:
```java
String greeting = "HELLO WORLD";
greeting = greeting.toLowerCase();
System.out.print(greeting); // hello world
```
这里强调了即使表面上是对同一个对象进行了所谓的“变更”,实际上背后发生的事情却是产生了新的内存分配过程。
阅读全文