JAVA中的String類的使用

來源:互聯網
上載者:User
String類

         1、String對象的初始化

由於String對象特別常用,所以在對String對象進行初始化時,Java提供了一種簡化的特殊文法,格式如下:

                            String s = “abc”;

                            s = “Java語言”;

                   其實按照物件導向的標準文法,其格式應該為:

                            String s = new String(“abc”);

                            s = new String(“Java語言”);

只是按照物件導向的標準文法,在記憶體使用量上存在比較大的浪費。例如String s = new String(“abc”);實際上建立了兩個String對象,一個是”abc”對象,儲存在常量空間中,一個是使用new關鍵字為對象s申請的空間。

其它的構造方法的參數,可以參看String類的API文檔。

         2、字串的常見操作

                   a、charAt方法

該方法的作用是按照索引值(規定字串中第一個字元的索引值是0,第二個字元的索引值是1,依次類推),獲得字串中的指定字元。例如:

         String s = “abc”;

         char c = s.chatAt(1);

則變數c的值是’b’。

                   b、compareTo方法

該方法的作用是比較兩個字串的大小,比較的原理是依次比較每個字元的字元編碼。首先比較兩個字串的第一個字元,如果第一個字串的字元編碼大於第二個的字串的字元編碼,則返回大於0的值,如果小於則返回小於0的值,如果相等則比較後續的字元,如果兩個字串中的字元編碼完全相同則返回0。

                            例如:

                                     String s = “abc”;

                                     String s1 = “abd”;

                                     int value = s.compareTo(s1);

                            則value的值是小於0的值,即-1。

                            在String類中還存在一個類似的方法compareToIgnoreCase,這個方法是忽略字元的大小寫進行比較,比較的規則和compareTo一樣。例如:

                                     String s = “aBc”;

                                     String s1 = “ABC”;

                                     int value = s. compareToIgnoreCase (s1);

                            則value的值是0,即兩個字串相等。

                   c、concat方法

該方法的作用是進行字串的串連,將兩個字串串連以後形成一個新的字串。例如:

                                     String s = “abc”;

                                     String s1 = “def”;

                                     String s2 = s.concat(s1);

則串連以後產生的新字串s2的值是”abcdef”,而字串s和s1的值不發生改變。如果需要串連多個字串,可以使用如下方法:

                                     String s = “abc”;

                                     String s1 = “def”;

                                     String s2 = “1234”;

         String s3 = s.concat(s1).concat(s2);

則產生的新字串s3的值為”abcdef1234”。

其實在實際使用時,文法上提供了一種更簡單的形式,就是使用“+”進行字串的串連。例如:

         String s = “abc” + “1234”;

則字串s的值是”abc1234”,這樣書寫更加簡單直觀。

而且使用“+”進行串連,不僅可以連接字串,也可以串連其他類型。但是要求進行串連時至少有一個參與串連的內容是字串類型。而且“+”匹配的順序是從左向右,如果兩邊串連的內容都是基本數字類型則按照加法運算,如果參與串連的內容有一個是字串才按照字串進行串連。

例如:

         int a = 10;

         String s = “123” + a + 5;

則串連以後字串s的值是“123105”,計算的過程為首先連接字串”123”和變數a的值,產生字串”12310”,然後使用該字串再和數字5進行串連產生最終的結果。

而如下代碼:

         int a = 10;

         String s = a + 5 + “123”;

則串連以後字串s的值是”15123”,計算的過程為首先計算a和數字5,由雩都是數字型則進行加法運算或者數字值15,然後再使用數字值15和字串”123”進行串連獲得最終的結果。

而下面的串連代碼是錯誤的:

         int a = 12;

         String s = a + 5 + ‘s’;

因為參與串連的沒有一個字串,則計算出來的結果是數字值,在賦值時無法將一個數字值賦值給字串s。

                   d、endsWith方法

該方法的作用是判斷字串是否以某個字串結尾,如果以對應的字串結尾,則返回true。

例如:

         String s = “student.doc”;

         boolean b = s.endsWith(“doc”);

則變數b的值是true。

                   e、equals方法

該方法的作用是判斷兩個字串對象的內容是否相同。如果相同則返回true,否則返回false。例如:

         String s = “abc”;

         String s1 = new String(“abc”);

         boolean b = s.equals(s1);

而使用“==”比較的是兩個對象在記憶體中儲存的地址是否一樣。例如上面的代碼中,如果判斷:

         boolean b = (s == s1);

則變數b的值是false,因為s對象對應的地址是”abc”的地址,而s1使用new關鍵字申請新的記憶體,所以記憶體位址和s的”abc”的地址不一樣,所以獲得的值是false。

在String類中存在一個類似的方法equalsIgnoreCase,該方法的作用是忽略大小寫比較兩個字串的內容是否相同。例如:

         String s = “abc”;

         String s1 =”ABC”;

         boolean b = s. equalsIgnoreCase (s1);

則變數b的值是true。</

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.