好程式設計師大資料學習路線分享大資料之字串
好程式設計師大資料學習路線分享大資料之 字串 , 不可變字串:----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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2658216/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師大資料學習路線分享大資料之執行緒程式設計師大資料執行緒
- 好程式設計師大資料學習路線分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料學習路線分享大資料之基礎語法程式設計師大資料
- 好程式設計師大資料學習路線分享MAPREDUCE程式設計師大資料
- 好程式設計師大資料學習路線分享SparkSQl程式設計師大資料SparkSQL
- 好程式設計師大資料學習路線分享Scala系列之物件程式設計師大資料物件
- 好程式設計師大資料學習路線分享Hbase指令學習程式設計師大資料
- 好程式設計師大資料學習路線分享Scala系列之抽象類程式設計師大資料抽象
- 好程式設計師大資料學習路線分享Scala系列之陣列程式設計師大資料陣列
- 好程式設計師大資料學習路線分享Scala系列之泛型程式設計師大資料泛型
- 好程式設計師大資料學習路線之mapreduce概述程式設計師大資料
- 好程式設計師大資料學習路線分享HDFS讀流程程式設計師大資料
- 好程式設計師大資料學習路線分享AWK詳解程式設計師大資料
- 好程式設計師大資料學習路線分享UDF函式程式設計師大資料函式
- 好程式設計師大資料學習路線分享Lambda表示式程式設計師大資料
- 好程式設計師大資料學習路線Hadoop學習乾貨分享程式設計師大資料Hadoop
- 好程式設計師大資料學習路線分享HDFS學習總結程式設計師大資料
- 好程式設計師大資料學習路線分享hdfs學習乾貨程式設計師大資料
- 好程式設計師大資料學習路線分享Actor學習筆記程式設計師大資料筆記
- 好程式設計師大資料學習路線分享Map學習筆記程式設計師大資料筆記
- 好程式設計師大資料學習路線分享Scala系列之對映Map程式設計師大資料
- 好程式設計師大資料學習路線分享Scala系列之基礎篇程式設計師大資料
- 好程式設計師大資料學習路線之zookeeper乾貨程式設計師大資料
- 好程式設計師大資料學習路線之大資料自學路線二程式設計師大資料
- 好程式設計師大資料學習路線之大資料自學路線一程式設計師大資料
- 好程式設計師大資料學習路線分享高階函式程式設計師大資料函式
- 好程式設計師大資料學習路線分享Hadoop機架感知程式設計師大資料Hadoop
- 好程式設計師大資料學習路線分享Scala系列之集合操作函式程式設計師大資料函式
- 好程式設計師大資料學習路線分享彈性分散式資料集RDD程式設計師大資料分散式
- 好程式設計師大資料學習路線之hive儲存格式程式設計師大資料Hive
- 好程式設計師大資料學習路線分享MapReduce全過程解析程式設計師大資料
- 好程式設計師大資料學習路線分享hive的執行方式程式設計師大資料Hive
- 好程式設計師大資料學習路線分享什麼是Hash表程式設計師大資料
- 好程式設計師大資料學習路線分享Scala分支和迴圈程式設計師大資料
- 好程式設計師大資料學習路線分享MapReduce全流程總結程式設計師大資料
- 好程式設計師大資料學習路線分享TCP和UDP學習筆記程式設計師大資料TCPUDP筆記
- 好程式設計師大資料學習路線Hbase總結程式設計師大資料
- 好程式設計師大資料學習路線之hive表的查詢程式設計師大資料Hive