Java中String类、字符串常量池、字符串常用方法
生活随笔
收集整理的這篇文章主要介紹了
Java中String类、字符串常量池、字符串常用方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
String類:
String代表字符串類,java中所有雙引號中的內容都稱為字符串,如:“hello”。字符串是不可改變的,因此字符串是可以共享使用的,相當于char字符數組,但是底層原理是byte字節數組。
創建字符串的四種方式:
// 1.創建字符串對象有四中方式,如下: public class Stringobj{public static void main(String[] args){// 1-1:第一種括號中不傳參直接創建:new String(),括號留空表示創建的是空白字符。String str1 =new String();System.out.println(str1);//""// 1-2:第二種根據字符數組的內容創建:new String(字符數組變量名),括號中寫字符數組變量名,不能直接寫字符數組表達式,否則解析錯誤,如:{'a','b'}。char[] char1 = {'o','k'};String str2 = new String(char1);System.out.println(str2);//ok,ok實際是有雙引號的字符串// 1-3:第三種根據字節數組創建:new String(byte數組變量名),計算機底層都是字節,因此可以直接使用字節創建。byte[] byte1 = {97,98,99};//a的字節數為97,b的字節數為98,c的字節數為99String str3 = new String(byte1);System.out.println(str3);//abc// 1-4:直接創建:"字符串的內容",如:String str4 = "hello,my name is kuhai.";System.out.println(str4);//hello,my name is kuhai.} }字符串的常量池:
字符串中直接使用雙引號包裹的字符串就在常量池中,字符串常量池存在于堆當中,常量池中的字符串可以共享。
String類的常用方法:
public class StringMethods{public static void main(String[] args){// 1.字符串內容比較:// 1-1:==是對對象地址值進行比較的,若要比較兩個字符串內容(區分大小寫),那么可以使用:equals(Object)方法,參數可以是任何對象,此方法通過.調用,只有調用者和傳入的參數相同時,才會返回布爾值true,如:String str1 = "123";String str2 = "123";char[] arr = {'1','2','3'};String str3 = new String(arr);String str4 = "kuhai";Boolean str1and2 = str1.equals(str2);Boolean str1and3 = str1.equals(str3);Boolean str2and3 = str2.equals(str3);Boolean str2and4 = str2.equals(str4);System.out.println(str1and2);//trueSystem.out.println(str1and3);//trueSystem.out.println(str2and3);//trueSystem.out.println(str2and4);//false// 提示:equals方法具有對稱性,即:str1.equals(str2)和str2.equals(str1)效果是一樣的;當常量和變量進行比較時,推薦常量調用equals方法,將變量傳入方法中。// 1-2:equalsIgnoreCase(String),忽略英文字母大小寫對內容進行比較,內容相同返回布爾值true,如:String strabc = "abc";String strABC = "ABC";Boolean result1 = strabc.equals(strABC);Boolean result2 = strabc.equalsIgnoreCase(strABC);System.out.println(result1);//falseSystem.out.println(result2);//true //2.獲取字符串字符的個數:length(),如:System.out.println(str1.length()); //3// 3.字符串拼接:concat(String),將被調用該方法的字符串和傳入的字符串拼接起來且原字符串都不變,只是會生成新的字符串返回,如:String hw = "hello".concat(" world");System.out.println(hw);//hello world// 4.獲取字符串指定位置的字符:charAt(int),需要注意:索引從0開始,也就是說,字符串中第一個字符為索引為0,如:String sayhello = "hello,my name is kuhi!";char chars = sayhello.charAt(4);System.out.println(chars);//o// 5.查找某字符在字符串中第一次出現的位置:indexOf(String),返回索引值,沒有則返回-1,如:String hel = "hello";int indexhel = hel.indexOf("l");System.out.println(indexhel);//2// 6.截取字符串:substring(int),當給一個索引時表示從某索引位置開始截取后面的所有字符串,當傳入兩個參數時,表示截取[int1,int2)區間的字符,如:String numstr = "12345";String substr = numstr.substring(1,3);System.out.println(substr);//23// 7.字符串轉換為字符數據:toCharArray(),將某字符串轉換為字符數組并返回,原來字符串不變,如:String strtest1 = "abcd";char[] arrtochararr = strtest1.toCharArray();System.out.println(arrtochararr[1]);//b,通過索引的方式拿到數組的元素// 8.字符串轉換為字節數組:getBytes(),將某字符串轉換為字節數組并返回,原來字符串不變,如:byte[] bt = "abc".getBytes();System.out.println(bt[0]);//97,通過索引拿到數組的元素// 9.字符串替換:replace(oldstr,newstr),將某字符串中舊的字符替換為新的字符并返回,原字符串不變,如:String says = "你好";String replacestr = says.replace("你","他");System.out.println(replacestr);//他好// 10.字符串分割:split(String),將字符串按照某規則進行分割成幾部分,并以數組的形式返回,原字符串不變,如:String names = "jack,李明,韓梅梅";String[] namearr = names.split(",");//這里實際是正則表達式,若要以英文句號切割,那么就得傳入:\\. ,因為英文句號在正則中有特殊含義。System.out.println(namearr[1]); //李明} }提示:本文圖片等素材來源于網絡,若有侵權,請發郵件至郵箱:810665436@qq.com聯系筆者刪除。
筆者:苦海
總結
以上是生活随笔為你收集整理的Java中String类、字符串常量池、字符串常用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML5的little,HTML 5
- 下一篇: python 知乎 合并 pdf_pyt