这两个类的用法的总结在网上实在是太多太多了,
这里我主要总结一下自己用得比较多的:
1.C++ string.
1.string 可以直接使用+,+=,<,>,==,<=,>=,=,[ ] 这些运算符,相当方便,其中的大小比较遵循字典序。
2.char* c_str(); 虽然字符数组并不好用,但很多时候在算法中scanf和printf会快一些,所以还得用到。
3.size_type length() const; 返回字符串长度,实际上这比strlen()要高效。size()的作用是一样的,为了和Java使用一样,我比较喜欢用length()。
4.basic_string substr(size_type pos = 0, size_type n = npos) const; 返回字符串的子串,传入起始和终止位置。
5.int compare(const basic_string& str) const; 相比用用运算符,这个函数我用得更习惯一些,它和Java差不多,并且返回值和strcmp()一样。
6.void reserve(); 字符串反转,经常使用。
7.size_type find(const basic_string& str) const; 在字符串中找出现的第一个str子串。
8.basic_string& replace(size_type p0, size_type n0,const basic_string& str); 把相应的起始位置、替换长度大小的子串替换成str。
9.char at(int index); 返回当前索引处的字符,会进行边界检查。
2.Java String
1.String 也可以直接使用+,+=,其它的就不好用了。
2.charAt(); Java中不能使用不安全的[ ]访问,只能用这个了。
3.length(); 和C++ 一样
4.compareTo(String anotherString) 和C++的compare基本一样。
5.equals(); 其实compareTo就够用了,不过有时候还是可以使用equals();
6.String replace(String str1, String str2);把原字符串中的所有出现的str1替换为str2,C++中没有直接提供这个功能...
7.split(String str); 按照提供的字符串或者默认为空格来分隔字符串,得到字符串数组。C/C++中的那个不是很好用...
8.substring(int beginIndex, int endIndex); 和C++一样。
9.各种valueOf(); 把各种类型转化为字符串,C++标准中没有,我一般使用sprintf()来完成这个功能。
10.trim(); 去掉字符串的前空白和后空白[空格],非常实用。
11.String类中没有reverse()方法,可以转化成StringBuffer类中的reverse()方法。