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