本文轉自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。