java與C++區別之String字符串


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


發佈了55 篇原創文章 · 獲贊 5 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章