1. 字符串处理基础与核心操作
字符串作为编程中最基础的数据类型之一,几乎存在于所有应用程序中。从简单的用户输入验证到复杂的文本分析,字符串操作贯穿了整个软件开发周期。我们先来看字符串的三大基础操作:创建、连接和分割。
在内存中,字符串通常以字符数组的形式存储,每个字符占用固定字节(ASCII字符占1字节,Unicode字符占2-4字节)。以C语言为例:
c复制char str[] = "Hello"; // 栈区分配
char *ptr = "World"; // 常量区分配
注意:不同语言字符串实现差异很大。Java的String是不可变对象,而Python3的str类型完全采用Unicode编码。
字符串连接是最常见操作,但不同语言性能差异显著:
- Python的
+操作会生成新对象,频繁连接推荐用join() - Java的
StringBuilder比直接+效率高10倍以上 - C++的
std::string会预分配缓冲空间减少内存重分配
字符串分割同样需要注意编码问题。处理中文时:
python复制text = "中国,美国,日本"
# 错误做法:split(b',') 会破坏多字节字符
print(text.split(',')) # 正确输出:['中国', '美国', '日本']
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 排序算法在字符串处理中的应用
字符串排序比数字排序复杂得多,需要考虑字符编码、大小写和语言规则。我们先看基础的ASCII排序:
javascript复制let fruits = ["apple", "Banana", "cherry"];
fruits.sort();
// 输出:["Banana","apple","cherry"] (ASCII码大写字母在前)
要实现真正的字典序排序,需要指定比较函数:
javascript复制fruits.sort((a,b) => a.localeCompare(b));
// 输出:["apple","Banana","cherry"]
对于中文排序,必须考虑本地化规则。JDK提供的Collator类能正确处理中文拼音排序:
java复制Collator cnCollator = Collator.ge
