Java-String方法的使用說明
阿新 • • 發佈:2018-11-03
package day01; import java.util.Random; import java.util.Scanner; import org.junit.Test; /** * *@author Administrator *@version 1.0 *@since JDK 1.7 */ public class Demo01 { @Test //字串的基本概念和在進行字串基本操作的時候所應該注意的問題; public void test(){ /** * (1)java中只要給定字串的型別就是不能夠進行改變的; * (2)所有的引用型別是儲存的是地址,是不可變的,是通過建立的物件來實現的; * (3)String在建立的時候使用的final修飾的,不能夠被繼承; * (4)java字串採用的是Unicode編碼方式的; * (5)類似於Hello的字串為字面量; * (6)字串緩衝池(起到去除重複的東西,先從字串緩衝池中去尋找,如果有相同的則直接呼叫,只有使用字面量的時候一般才從常量池中進行查詢), * 減少記憶體的使用空間; * (7)字串是不利於去頻繁的去修改的; * (8)在進行字串的練習的時候,如果都是字面量的時候,使用“==”進行判斷的時候,是相同的; * (是屬於java編譯器的原理,在編譯的時候會進行計算) * (9)使用new關鍵字的時候,是在記憶體中建立實際的物件; */ String str = "Hello world!"; System.out.println(str); } @Test public void test2(){ //indexOf方法的使用; String str = "Thinking in java"; //查詢給定的字串在當前字串中的位置; int index = str.indexOf("in"); System.out.println(index); //根據所給的引數從指定的位置查詢當前的字串所出現的位置; index = str.indexOf("in", 3); System.out.println(index); //使用lastIndexOf方法,查詢整個字串中最後一次出現的位置; index = str.lastIndexOf("in"); System.out.println(index); } @Test public void test3(){ //substring字串擷取操作;一般來說當我們使用數字來表示字串的位置的時候,預設的是包頭不包尾; String str = "http://www.oracle.com"; /*//從指定的位置開始擷取字串,到指定的位置保留字串; System.out.println(str.substring(11, 17));*/ /** * 獲取域名操作 * (1)獲取第一個.的位置,使用下標加1就可以; * (2)獲取第二個.的位置 */ //首先說去第次出現的位置,將其設為擷取字串的操作的開始位置; int start = str.indexOf("."); //獲取最後一次出現的位置,將其位置進行加1即可; int end = str.indexOf(".", start+1); String sub = str.substring(start+1,end); System.out.println(sub); } @Test public void test4(){ //去除字串中所出現的的空白項,使用trim()方法進行字串兩邊空白的去除; String str = " Hello World "; System.out.println(str); System.out.println(str.trim()); } @Test public void test5(){ //使用charAt()來檢索當前位置的字元; /*String str = "Hello World"; char c = str.charAt(8); System.out.println(c);*/ String str = "上海自來水來自海上"; //檢查迴文操作 //上海自來水來自海上 //思路:先是進行整個字串的便利操作,根據迴文的規則,如果一個字串是迴文的話則需要對原有的字串進行擇半從操作, //根據便利的條件進行判斷,如果前後對應的字串相同,則表示為迴文操作;反之 for(int i = 0;i<str.length()/2;i++){ if(str.charAt(i)!=str.charAt(str.length()-1-i)){ System.out.println("不是迴文!"); break; } } System.out.println("是迴文!"); } @Test public void test6(){ /*//英文的大小寫轉換,主要用於驗證碼之間的轉換,實現大小寫的輸入能夠同時去滿足 String str = "Hello World!"; //將字串中的字元全部轉換成大寫字元; System.out.println(str.toUpperCase()); //講字串中所有的字元轉換成小寫字元; System.out.println(str.toLowerCase()); */ /*String str1 = "WA3fd"; System.out.println("請輸入驗證碼......"+str1); //建建立Scanner物件 Scanner scan = new Scanner(System.in); //獲取當前控制檯輸入的字串操作; String input = scan.nextLine(); str1 = str1.toLowerCase(); input = input.toLowerCase(); if(str1.equals(input)){ System.out.println("驗證成功!"); }else{ System.out.println("驗證失敗!"); }*/ //建立Random物件產生隨機數量; Random r = new Random(); //使用for迴圈進行驗證碼個數的判斷; for(int i=0;i<4;i++){ //這隻一個狀態標誌,分別為大寫、小寫和數字三種狀態; int num = r.nextInt(3); //定義當前需要輸出的字串; String str = ""; switch(num){ case 0: //表示小寫狀態 char c= (char) (r.nextInt(26)+'a'); str+=c; break; case 1: //表示大寫狀態 char c1= (char) (r.nextInt(26)+'A'); str+=c1; break; case 2: //產生數字 str += r.nextInt(10); break; } System.out.print(str); } } @Test public void test7(){ String str = "Thinking in java"; //判斷指定的字串是否已指定的字元開始; /** * 該方法主要用來判斷指定的字串是否滿足當前的輸入要求,使用者是否按照當前的指定輸入進行基本的操作; */ boolean b = str.startsWith("Think"); if(b){ System.out.println("是"); }else{ System.out.println("否"); } boolean b1 = str.endsWith("java"); if(b1){ System.out.println("是"); }else{ System.out.println("否"); } } @Test public void test8(){ //valueOf()方法的使用,將引數中的之轉換成字串操作。但是我們一把使用加" "空字串進行轉換的;字串是一個不變的物件; int i = 100; double d = 123.334; String str= String.valueOf(i); System.out.println(str+d); } @Test public void test9(){ /** * StringBuilder進行字串的修改操作,用來解決字串頻繁的修改帶來的記憶體的消耗 * 所以我們有頻繁的修改字串的時候,首選使用StringBuilder建立物件;當我們使用StringBuilder建立空的字串的時候,我們預設建立的 * 是一個空的字串; * StringBuilder各個方法的使用; * append(),在當前的字串末尾新增相應的字串; * insert()方法,將所新增的字串新增到指定的位置,後面的字串向後移動; * delete() * replace() * reserve()方法,字串的反轉操作; * StringBuffer和StringBuilder的區別 * (1)StringBuffer是執行緒安全的,同步處理的新能稍慢,而StringBuilder是執行緒不安全的,能夠進行併發處理,效能稍快; */ StringBuilder sb = new StringBuilder("sdcsdcsdc"); //sb.append("-sdc"); //在使用replace方法的時候,在設定範圍的時候,前包括後不包括,是前半開區間; //進行程式碼優化的時候,從下面往上面進行程式碼的等量優化; sb.replace(2, 4, "@@"); System.out.println(sb); } }