聽說這個split方法比那個StringTokenizer效率高一點,今天剛好用上,就拿來試試,沒有想到一試就出問題了,把折分結果打在控制台上,結果居然是空的,我要折分的字符串是“5#1|7#2|11#3”剛用這里str.split("|")時就出問題了,看了下面這篇文章,將其改為str.split("//|")就OK了,這個|在正則表達式中也是個特殊字符。回頭還得弄弄正則表達式了。
public static void main(string[] args) {
string value = "192.168.128.33";
string[] names = value.split(".");
for (int i = 0; i < names.length; i++) {
system.out.println(names[i]);
}
}
運行結果:
對,沒看錯!沒有任何輸出!
讓我們來看看 split 方法的方法簽名吧:
public string[] split(string regex)
這里的參數的名稱是 regex ,也就是 regular expression (正則表達式)。這個參數並不是一個簡單的分割用的字符,而是一個正則表達式
,看了 split 方法的實現代碼就更堅定了我們的信心:
public string[] split(string regex, int limit) {
return pattern.compile(regex).split(this, limit);
}
split 的實現直接調用的 matcher 類的 split 的方法。讀者已經知道,“ . ”在正則表達式中有特殊的含義,因此我們使用的時候必須進行轉義。
public static void main(string[] args) {
string value = "192.168.128.33";
//注意要加//,要不出不來,yeah
string[] names = value.split("//.");
for (int i = 0; i < names.length; i++) {
system.out.println(names[i]);
}
}
輸出結果:
192
168
128
33
string value = "192.168.128.33";
string[] names = value.split(".");
for (int i = 0; i < names.length; i++) {
system.out.println(names[i]);
}
}
運行結果:
對,沒看錯!沒有任何輸出!
讓我們來看看 split 方法的方法簽名吧:
public string[] split(string regex)
這里的參數的名稱是 regex ,也就是 regular expression (正則表達式)。這個參數並不是一個簡單的分割用的字符,而是一個正則表達式
,看了 split 方法的實現代碼就更堅定了我們的信心:
public string[] split(string regex, int limit) {
return pattern.compile(regex).split(this, limit);
}
split 的實現直接調用的 matcher 類的 split 的方法。讀者已經知道,“ . ”在正則表達式中有特殊的含義,因此我們使用的時候必須進行轉義。
public static void main(string[] args) {
string value = "192.168.128.33";
//注意要加//,要不出不來,yeah
string[] names = value.split("//.");
for (int i = 0; i < names.length; i++) {
system.out.println(names[i]);
}
}
輸出結果:
192
168
128
33
再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow