本文转自csdn博客: http://blog.csdn.net/flywithmj/article/details/7568765
记下来作为Java学习笔记。
从概念上讲,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。