您的位置:首页 > 编程语言 > C语言/C++

java与C++区别之String字符串

2012-05-15 15:19 274 查看
从概念上讲,java字符串就是Unicode字符序列。

1,提取子串

String类提取子串的方法是substring方法,例如:String str = "hello"; String substr = str.subdtring(0,4);,在这里,第一个参数是起始位置,第二个参数是不想复制的第一个位置或者说是截止位置。结果就是"hel"。

2,字符串拼接

java语言与C++语言一样,都支持使用“+”来拼接字符串,例如:String str1 = "Hello "; String str2 = "java";String str3 = str1+str2。当将一个字符串与另一个非字符串(任何一个java对象都行)进行拼接时,后者会被转换为字符串。

在这里要说一种高效率的拼接字符串的方法:使用StringBuilder类来构建字符串,示例如下:

char c='a';

String str = "asas";

StringBuilder builder = new StringBuilder();

builder.append(c);

builder.append(str);

String mystr = builder.toString();

这样就可以将多个字符或者字符串拼接成字符串,而且效率比使用“+”要高。最后介绍一下StringBuffer类,他是StringBuilder的前身,其执行效率略低,但是其允许采用多线程的方式执行添加或删除字符的操作。

3,检测字符串相等

在C++中,我们判断两个字符转是否相等最简单的方法就是用“==”直接进行比较,这是因为C++重载了“==”运算符,以便检测字符串内容是否相等。但在java中,没有重载“==”运算符,所以不能使用“==”判断字符串内容是否相等,这个运算符只能检测两个字符串是否存储在同一位置,若存储在同一位置,则相等,返回true。当然,内容必然相等,但是存储在不同位置的字符串其内容也可能相等。

在java中,采用equals方法判断是否相等,例如:

String str1 ="qw";

String str2 = "asda";

boolean judge = str1.equals(str2);

若相等,返回true,否则,返回false。如果不区分大小写,则使用equalsIgnoreCase函数。

4,提取字符串上的字符。

在C++中,我们可以用“[]”来访问字符串的字符,例如string str = "C++is"; char c= str[1];但在java中,使用charAt()方法访问,例如:String str =“hello”; char s = str.charAt(2);

最后着重提示一点,java的String类没有提供用于修改字符串的方法。具体参照《java核心思想》p44。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: