­

split()方法上遇到的坑,JDK1.7和JDK1.8版本上的區別 發布於 1 年前 (2018年10月18日)

前段時間在公司程式上看到前輩們用split()方法去切割無分隔符號標誌的字元串。

如:

String testStr = "asd";

String[] testStrSplit = testStr.split("");

如果你的版本不是jdk1.7時

輸出testStrSplit 是["a","s","d"]

剛開始我還以為是前輩程式有問題。

然後切換到了和linux伺服器java同版本(jdk1.7)

輸出testStrSplit 是["","a","s","d"]

emmmmm,這就是問題所在了,當版本不一時,jdk1.7前面是多了一個空,因此數組長度一個是4,而一個為3.(此處有眼淚)

所以,當想切割無分隔符的字元串時,我們是不是可以有其他方法?

是噠,這個時候可以用toCharArray().兼容jdk1.7和1.8。

char[] testStrArr = testStr.toCharArray();//["a","s","d"]


toCharArray 方法de作用:將字元串轉換為字元數組.

split()和toCharArray的區別:

(1)split是根據你需要按照那個分隔符號來進行分割的

比如:

String a = "a,d,e,s,f"; String []b = a.split(',');這個就是根據逗號將數據分開,遍歷輸出得到的b的對象為"a","d","e","s","f"

(2)toCharArray是將String對象的每一個下標位的對象保存在char[]中,

比如:

String a = "abcd"; char[] b = a.toCharArray(); 遍歷輸出得到的b資訊就是['a','b','c','d']