我想通過單詞「data ::」而不是單個字符來分割這個字符串。怎麼樣?如何在Java中分割單詞而不是單個字符?
String bla = "data::01000100010001000100data::0101001010101010101data::11111111111111111";
String result[] = bla.split("\\data::");
/*
* this outputs the whole string
* instead of only: 01000100010001000100*/
System.out.println(result[0]);
注:
package test;
public class NewClass
{
public static void main(String[] args)
{
String bla = "data::0000data::1111data::010101";
// Try 1 - failed
String[] parta = bla.split("\\ddata::");
System.out.println(parta[0]);
System.out.println(parta[1]);
System.out.println(parta[2]);
// Try 2 - failed -- works
String[] partb = bla.split("data::");
System.out.println(partb[0]); // consider as empty
System.out.println(partb[1]); // starts from here
System.out.println(partb[2]);
// Try 3 - failed
String partc[] = bla.split("\\wdata::");
System.out.println(partc[0]);
System.out.println(partc[1]);
System.out.println(partc[2]);
}
}
失敗輸出:
run:
data::000
111
010101
0000
1111
data::000
111
010101
BUILD SUCCESSFUL (total time: 0 seconds)
您是否嘗試用''data ::「'替換'」\\ data ::「'? – home
bla.split(「data ::」); – confucius
在你的例子的第2個例子中,你需要打印出'partb [3]'。因爲你的輸入以分隔符開始,所以你會得到一個空字符串作爲第一個結果。按照@John B的建議使用Guava'a'Splitter',可以使用'omitEmptyStrings()'自動忽略這個額外的結果。 – ColinD