您好,登錄后才能下訂單哦!
這篇文章主要講解了“大數(shù)據(jù)字符串怎么轉(zhuǎn)換”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“大數(shù)據(jù)字符串怎么轉(zhuǎn)換”吧!
不可變字符串:----String.字符串本身不能發(fā)生改變,與指向字符串的引用無關(guān)。
String s1 = "1000phone";
可變字符串:----StringBuilder/StringBuffer.字符串本身可以發(fā)生變化,與指向可變字符串的引用無關(guān)
StringBuffer sBuffer = new StringBuffer("1000phone");
不可變字符串本身是一個常量,保存在常量區(qū),是存儲在了堆區(qū)中一塊兒特殊的區(qū)域里。
字符串常量的特點(diǎn):同一個字符串常量在常量區(qū)只允許存儲一個。
String s = "1000phone";//不可變字符串
當(dāng)執(zhí)行s的時候,會到常量區(qū)找叫1000phone的字符串,如果有直接讓s保存他的地址,如果沒有,會在常量區(qū)開辟一塊兒空間存1000phone.
String s3 = new String("1000phone");
執(zhí)行s3時,由于進(jìn)行了new,一定會現(xiàn)在堆中開辟一塊兒空間,而1000phone是作為參數(shù)傳給了對象.保存在了對象的一個String
使用equals進(jìn)行String的比較
2.轉(zhuǎn)換:
將字符數(shù)組轉(zhuǎn)換成字符串
char[] arr = {'p','h','o','n','e'};
String string1 = new String(arr); //string1 = phone
將字符串轉(zhuǎn)換成字符數(shù)組
char[] arr1 = string.toCharArray();
System.out.println(arr1);
將字節(jié)數(shù)組轉(zhuǎn)成字符串
//String(byte[] bytes)
//String(byte[] bytes, int offset, int length)
//String(byte[] bytes, String charsetName)//使用指定的編碼將字節(jié)數(shù)組轉(zhuǎn)換成字符成
byte[] bytes = {97,98,99,100};
String string3 = new String(bytes);
System.out.println(string3); //abcd
將字符串轉(zhuǎn)成字節(jié)數(shù)組
//byte[] getBytes()
byte[] bytes1 = string3.getBytes();
將基本數(shù)據(jù)類型轉(zhuǎn)換成字符串
//String.valueOf()
String string4 = String.valueOf(true);
System.out.println(string4);//true
子串:
//包含起始位置,不包含結(jié)束位置,到結(jié)束位置的前一位
String substring(int beginIndex, int endIndex);
大小寫轉(zhuǎn)換
String toLowerCase(); // 轉(zhuǎn)成小寫
String toUpperCase(); // 轉(zhuǎn)成大寫
按字典順序比較兩個字符串
字典順序:按照ASCII表比較當(dāng)前的兩個字符,ASCII碼大的認(rèn)為是大的字符
規(guī)則:從左邊第一個字符開始比較
如果當(dāng)前的字符不相同,直接認(rèn)為ASCII大的字符串是大字符串,后面的字符停止比較
當(dāng)前字符比較的具體規(guī)則:使用前面的字符-后面的字符,返回差值.如果是負(fù)數(shù),說明前面的字符串小于后面的.反之前面的大.
如果當(dāng)前的字符相同,再去比較第二個字符,依次往后推,如果比到最后都相同,則認(rèn)為兩個字符串相等,差值返回0.
"1000PHone".compareTo("1000PHone");//0
"1000AHone".compareTo("1000BHone");//-1
"100000".compareTo("100");//-3
可變字符串:
字符串緩沖區(qū).StringBuffer/StringBuilder
區(qū)別:
StringBuffer:出現(xiàn)在jdk1.0,是線程安全的,考慮了線程安全問題
StringBuilder:出現(xiàn)在jdk1.5,是線程不安全的,沒有考慮線程安全問題
注意:在不考慮線程安全問題時,盡量使用StringBuilder,因?yàn)樗俣瓤?效率高
使用:
StringBuffer sBuffer = new StringBuffer();
//1.存儲:
//StringBuffer append(boolean b) 從最后插入
sBuffer.append("abcd"); //abcd
//StringBuffer insert(int offset, boolean b) 從指定位置插入
sBuffer.insert(4, 123);
System.out.println(sBuffer);//abcd123
//2.刪除:
//StringBuffer delete(int start, int end) 刪除一部分字符串
//StringBuffer deleteCharAt(int index) 刪除一個字符
System.out.println(sBuffer.deleteCharAt(4));//abcd23
System.out.println(sBuffer.delete(2,4)); //ab23
//3.修改:
//StringBuffer replace(int start, int end, String str) 替換指定的子字符串
//void setCharAt(int index, char ch) 修改一個字符
sBuffer.replace(1, 3, "ab") ; //aab3
//4.獲?。?/p>
//char charAt(int index)
System.out.println(sBuffer.charAt(0)); //a
//返回指定子字符串的下標(biāo) 從左到右
//int indexOf(String str)
System.out.println(sBuffer.indexOf("ab"));//1
//返回指定子字符串在此字符串中第一次出現(xiàn)處的索引,從指定的索引開始。
System.out.println(sBuffer.indexOf("ab",0)); //1
System.out.println(sBuffer.indexOf("ab",2)); //-1
//int lastIndexOf(String str)
//返回指定子字符串(從右邊開始計(jì)數(shù))在此字符串第一次出現(xiàn)時的索引
System.out.println(sBuffer.indexOf("ba")); //-1
System.out.println(sBuffer.indexOf("ab")); //1
//int lastIndexOf(String str, int fromIndex)
/返回指定字符在此字符串中最后一次出現(xiàn)處的索引,從指定的索引處開始進(jìn)行反向搜索。
System.out.println(sBuffer.indexOf("ab",1)); //1
//5.反轉(zhuǎn):
//StringBuffer reverse()
System.out.println(sBuffer.reverse()); //3baa
感謝各位的閱讀,以上就是“大數(shù)據(jù)字符串怎么轉(zhuǎn)換”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對大數(shù)據(jù)字符串怎么轉(zhuǎn)換這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。