歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java之String類的使用細節

Java之String類的使用細節

日期:2017/3/1 9:35:00   编辑:Linux編程
String類的特點: 字符串對象一旦被初始化就不會被改變,字符串存儲在字符串常量池中(字符串緩沖區)。如果池中沒有就創建,如果有就直接拿過來用。 代碼驗證如下: String s = "abc";//在常量池中創建了一個字符串對象 String s1 = "abc";//true //s與s1內容相同,地址相同 System.out.println(s==s1);//true System.out.println(s==s1);//true
String s2 = new String("abc");//在堆內存中創建了兩個對象,一個new對象一個字符串對象 //s與s2內同相同,地址不同 System.out.println(s==s2);//false System.out.println(s==s2);//true 原因是String類中的equals復寫了String類中的equals建立了String類屬於自己的判斷字符串對象是否相同的依據,其實就是比較字符串的內容。 String s = new String();//等效於String s= "" 都是空字符串,內容相同,但是不等效於String s = null; 按照面向對象的思想對字符串功能進行分類 思考思路:如果我們想要使用某種方法或說是功能來達到自己的目的,那麼就首先需要對這種方法進行查找,看這種方法是否已經給我們封裝好了,例如:如果想要獲取字符串的長度,那麼返回值必然是int,確定了返回值再想要找到方法就會很簡單了。那麼再思考的就是我們是否要給這個方法進行參數的傳遞,獲取長度其實就是對象直接調用方法就可以了,因此我們也可以確定,這個方法是不需要來進行參數傳遞的。經過以上方式的思考,我們很快就可以確定下來這個方法是哪個。如果這樣的思考之後,還沒有找到我們需要的方法,那麼有可能就需要我們自己進行封裝了。
以下為String類常用的一些方法,也是通過面向對象的思想來進行整理的。 如字符串"string" 1,獲取 1.1獲取字符串中字符的個數(長度)。 返回值int 方法名:length(); 1.2根據位置獲取字符。 返回值char 方法名: charAt(int index); 1.3根據字符獲取在字符串中第一次出現的位置。 返回值int 方法名:indexOf(int ch); 返回值int 方法名:indexOf(int ch,int fromIndex); 返回值int 方法名:indexOf(String str); 返回值int 方法名:indexOf(String str,int fromIndex); 1.4根據字符串獲取在字符串中第一次出現的位置。 返回值int 方法名:lastIndexOf(int ch); 返回值int 方法名:lastIndexOf(int ch,int fromIndex); 返回值int 方法名:lastIndexOf(String str); 返回值int 方法名:lastIndexOf(String str,int fromIndex); 1.5根據字符串獲取字符串中的一部分字符串,即子串。 返回值String 方法名:subString(int beginIndex, int endIndex); 返回值String 方法名:subString(int beginIndex); 2,轉換 2.1將字符串變成字符串數組(字符串的切割) 返回值String[] 方法名 split(String regex);//添加正則表達式的切割規則 2.2將字符串變成字符數組。 返回值char[] 方法名 toCharArray(); 2.3將字符串變成字節數組 返回值byte[] 方法名getBytes(); 2.4將字符串中字母轉為大小寫字母 返回值String 方法名toUpperCase(); 返回值String 方法名toLowerCase(); 2.5將字符串中的內容進行替換 返回值String 方法名replace(char oldChar,char newChar);//沒有oldChar則不改變 返回值String 方法名replace(CharSequence target,CharSequence replacement); 也可以理解為 返回值String 方法名replace(String oldString,String newString);因為String類是Sequence的子類 2.6去除字符串中兩端的空格 返回值String 方法名trim(); 2.7將字符串進行連接 返回值String 方法名concat(String s); 2.8將基本數據類型轉換為字符串類型 返回值String 方法名ValueOf(基本數據類型); 2.9將字符數組轉化為字符串 可以使用構造方法String(char [] value); 返回值String 方法名copyValueOf(char[] data) 3,判斷 3.1兩個字符串內容是否相同 返回值boolean 方法名 equals(Object obj); 返回值boolean 方法名equalsIgnoreCase(String str); //忽略大小寫比較字符串內容是否相同。 3.2字符串中是否包含指定字符串 返回值boolean 方法名contains(String str); 3.3字符串是否以指定字符串開頭,是否以指定字符串結尾 返回值boolean 方法名startsWith(String str); 返回值boolean 方法名endsWith(String str); 4,比較 4.1比較兩個字符串的大小 返回值int 方法名compareTo(String str);

通過Java程序抽取日志中的sql語句 http://www.linuxidc.com/Linux/2015-01/111347.htm

解密Java增強的泛型 http://www.linuxidc.com/Linux/2015-01/111360.htm

Java中介者設計模式 http://www.linuxidc.com/Linux/2014-07/104319.htm

Java 設計模式之模板方法開發中應用 http://www.linuxidc.com/Linux/2014-07/104318.htm

設計模式之 Java 中的單例模式(Singleton) http://www.linuxidc.com/Linux/2014-06/103542.htm

Java對象序列化 http://www.linuxidc.com/Linux/2014-10/107584.htm

大話設計模式(帶目錄完整版) PDF+源代碼 http://www.linuxidc.com/Linux/2014-08/105152.htm

Java中的函數傳遞 http://www.linuxidc.com/Linux/2014-11/109056.htm

Copyright © Linux教程網 All Rights Reserved