我的上一篇隨筆記錄了HANA數據現庫截取字符串的方式,那么,對於Java開發來說,現實的開發里肯定也會遇到截取字符串截取的問題。
Java里截取字符串的方式的有三種。
1.使用java.lang包里的String.split()方法
split()方法里傳進來一個正則,用來作為截取的標准。
例子:
String str = "Shi,Wan,Ger,Wei,Shen,Mer"; //以逗號","作為分隔標准,返回一個字符串類型數組 String[] arr = str.split(","); //結果為:Shi String s1 = arr[0]; //結果為:Wan String s2 = arr[1];
使用這種方式存在以下注意點:
1)使用這種方式來截取字符串會比較影響效率,因為編譯器在解釋正則表達式的時候比較費時間;
2)如果想使用"."作為分隔符,比如在"."前面加上"\\",如split("\\."),第一個\是轉義,\.是正則,同理,"|"也必須這樣寫;
3)當字符串有多個分隔符時,可以用"|"把分隔符連接,比如
String str1 = "Shi,Wan%Ger%Wei,Shen,Mer"; //返回一個字符串類型數組 String[] arr1 = str1.split(",|%"); //結果為:Shi String a1 = arr1[0]; //結果為:Wan String a2 = arr1[1];
2.使用subString()方法(這種方式應該歸類到第三點去的,因為這個方法屬於String工具類的方法)
1) subString(i)表示從下標為i的下標開始,截取從i到末尾的字符串;
String str = "ShiWanGerWeiShenMer";
//從下標為3的字符開始截取(包含下標為3的字符),輸出結果為:WanGerWeiShenMer
System.out.println(str.substring(3));
2) subString(i,j)表示從下標為i的地方開始,截取到j為止的字符串(不包含j)。
String str = "ShiWanGerWeiShenMer"; //輸出結果為:W System.out.println(str.substring(3,4));
3.String工具類提供的方法
StringUtils是String的工具類,里面提供了截取字符串的方法。
在此之前,需要導入commons-lang3-3.1.jar包,下載地址是https://mvnrepository.com/artifact/org.apache.commons/commons-lang3/3.1,idea導入方式如下:
1)先下載好jar包放在自己知道的位置;
2)File---Project Structure---Libraries---點擊+號---Java---選擇你保存jar包的路徑---OK.
String str = "ShiWanGerWeiShenMer"; //截取第一個G之前的字符串 StringUtils.substringBefore(str, "G"); //結果為:ShiWan System.out.println(StringUtils.substringBefore(str, "G"));
//截取第一個G之后的字符串 StringUtils.substringAfter(str, "G"); //結果為:erWeiShenMer System.out.println(StringUtils.substringAfter(str, "G"));