字元串拆分
public static void main(String[] args) {
String str = "I Live In The Home";
String[] ret = str.split(" ");
for (String x : ret){
System.out.println(x);
}
System.out.println("原來的字元串為:" + str);
//System.out.println(Arrays.toString(ret));
}
輸出結果為:

從這裡可以看到,本代碼是用空格拆分字元串,但是最開始的字元串不會因為字元串的分割而改變(String定義的字元串不會被修改)
注意:
這裡要引出一個概念:正規表達式
就比如下面的例子:
public static void main(String[] args) {
String str = "192.43.67";
//想按照“.”來切分
String[] result = str.split(".");
for (String x : result){
System.out.println(x);
}
}
以上代碼沒有執行結果,也就是說split方法在str裡面沒有找到"."這個字元,我們知道,“.”在正規表達式中是一個特殊字元
,需要進行轉義才能識别出來。如下:
String str = "192.43.67";
//想按照“.”來切分
//.在正規表達式中是一種特殊符号,為了讓split識别出源字元串中的“.”,就需要進行轉意義“\\.”
String[] result1 = str.split("\\.");
for (String x : result){
System.out.println(x);
}
“\.” 裡面有兩個反斜杠,代表的兩個轉義,
一個是在java中進行轉義,一個是在正則中表示轉義
與之用法相同的符号有:“| + * ”
實際應用
public static void main(String[] args) {
//split的實際應用
String string = "name=zhangsan&age=14&sex=male";
//1.先按照&進行拆分
String[] result = string.split("&");
for (String tmp : result){
//現在已經按照&拆分好了,開始進行=的拆分
String[] ret = tmp.split("=");
if (ret.length != 2){
continue;
}
System.out.println(ret[0] + ": " + ret[1]);
}
}