附:jdk1.8使用IDEA安裝.創建.使用JUnit單元測試
筆記總結:
1 /**String 復習 2 * 1.像C++這樣的char arr[]="..." 的方式無法聲明Java的String 3 * 2.a.compareTo(b),表示按字典序比較兩個字符串a和b,結果小於0:a表示小於b,結果大於0:a表示大於b,結果等於0表示等於(值不確定) 4 * 3.equals() 判斷相等 5 * 4.indexOf(String str) 返回指定子字符串在此字符串中第一次出現處的索引。 6 * lastindexOf(String str) 返回指定子字符串在此字符串中最后一次出現處的索引。 7 *5.valueof()可以將基本所有的Java數據類型轉換為String 類 8 * 9 * 6.StringBuff 類,支持 append(), legth() , insert(),reverse()
/**StringBuffer * 線程安全,可變的字符序列。 字符串緩沖區就像一個String ,但可以修改。 (初始化是16個字符) * 在任何時間點,它包含一些特定的字符序列,但可以通過某些方法調用來更改序列的長度和內容。 * --------------------------- *StringBuilder
同樣可變的字符序列,較新,效率遠高於String ,高於StringBuffer!
簡單的方法測試代碼:
package Coding; public class Main_of_Coding { public static void main(String[] args) { //1.String 的構造方法 String str1=new String("first String"); char arr[]= {'s','e','c','o','n','d',' ','S','t','r','i','n','g'}; String str2=new String(arr); String str3=new String(arr,1,4); //起始點offset: 1 ,總統計count : 4 String str4=new String(str1+1); //數字1不表示移動地址,表示數字1加到str1的后面 System.out.println(" "+str1+"\t2: "+str2+"\t:3 "+str3+"\t:4"+str4); //2.使用 str4=str1+str2;System.out.println(str4); //字符串鏈接 System.out.println(str1.charAt(0)+" "+str1.charAt(1)); //獲取第i個字符! str1="aab";str2="ac"; System.out.println(str1.compareTo(str2)); // 按字典順序比較兩個字符串。 str1="666";str2="777"; System.out.println(str1.compareTo(str2)); //3.轉換成字符數組 char a1[]=str1.toCharArray(); System.out.println(new String(a1)+" 1:"+a1[1]+" 2:"+a1[2]); //4.字符串搜索 System.out.println("indexof66: "+str1.indexOf("66")); System.out.println("lastindexof66: "+str1.lastIndexOf("66")); // } }
運行結果:
first String 2: second String :3 econ :4first String1 first Stringsecond String f i -2 -1 666 1:6 2:6 indexof66: 0 lastindexof66: 1
對比三者的效率測試:
public class testStringBuff { //對比三者的效率測試 @Test public void test3(){ String text = ""; long startTime = 0L; long endTime = 0L; StringBuffer buffer = new StringBuffer(""); StringBuilder builder = new StringBuilder(""); System.out.println("三者同時添加20000個數花費的時間比較!!"); startTime = System.currentTimeMillis(); for(int i = 0;i<20000;i++){ buffer.append(String.valueOf(i));} endTime = System.currentTimeMillis(); System.out.println("StringBuffer的執行時間:"+(endTime-startTime)); startTime = System.currentTimeMillis(); for(int i = 0;i<20000;i++){ builder.append(String.valueOf(i));} endTime = System.currentTimeMillis(); System.out.println("StringBuilder的執行時間:"+(endTime-startTime)); startTime = System.currentTimeMillis(); for(int i = 0;i<20000;i++){ text = text + i;} endTime = System.currentTimeMillis(); System.out.println("String的執行時間:"+(endTime-startTime)); } }
測試結果:
三者同時添加20000個數花費的時間比較!! StringBuffer的執行時間:10 StringBuilder的執行時間:3 String的執行時間:967