天天看點

java切割字元串并保留分隔符_java – 如何拆分一個字元串,但也保留分隔符?

你可以使用Lookahead和Lookbehind。喜歡這個:

System.out.println(Arrays.toString("a;b;c;d".split("(?<=;)")));

System.out.println(Arrays.toString("a;b;c;d".split("(?=;)")));

System.out.println(Arrays.toString("a;b;c;d".split("((?<=;)|(?=;))")));

你會得到:

[a;, b;, c;, d]

[a, ;b, ;c, ;d]

[a, ;, b, ;, c, ;, d]

最後一個是你想要的。

((?<=); |(?=;))等于選擇前一個空字元;或之後。 希望這可以幫助。 編輯Fabian Steeg對可讀性的評論是有效的。可讀性總是RegEx的問題。一件事,我幫助緩和這是建立一個變量,其名稱代表正規表達式,并使用Java String格式來幫助。喜歡這個:

static public final String WITH_DELIMITER = "((?<=%1$s)|(?=%1$s))";

...

public void someMethod() {

...

final String[] aEach = "a;b;c;d".split(String.format(WITH_DELIMITER, ";"));

...

}

...

這有點幫助。 😀