1. 背景介绍
在Java中操作字符串比较简单,这里简单介绍下Java字符串操作相关接口。
字符串拼接直接用+
号既可,字符串比较实用equel方法,同时还提供了StringBuilder和StringBuffer可变的字符串。它们继承了同一个抽象的字符串父类:AbstractStringBuilder
。
StringBuffer是线程安全,StringBuilder线程不安全。因为 StringBuffer 的所有公开方法都是 synchronized 修饰的,而 StringBuilder 并没有 synchronized修饰;StringBuffer 每次 toString 都会直接使用缓存区的 toStringCache 值来构造一个字符串,而 StringBuilder 则每次都需要复制一次字符数组,再构造一个字符串。所以,缓存冲这也是对 StringBuffer 的一个优化吧,不过 StringBuffer 的这个toString 方法仍然是同步的。
在C语言中我们操作String要相对麻烦些,每次字符串拼接都要重新开辟空间,再把数据拷贝进去,使用上没有那么便捷。
C++标准库中为我们实现了std::string字符串类,本文我们系统的介绍std::string类。
2. 初始化std::string
string也是C++的一个类,跟其他普通类类似,string也提供了以下几种初始化方法:
#include <string>
using std::string;
//默认初始化成空字符串
string s1;
//拷贝初始化,等价于string s2