在保留分隔符號的情況下拆分字串
使用多行字串時,通常需要使用分隔符號將它們拆開分為各個組成部分。但是, String.split() 的預設行為會丟棄分隔符,只留下被提取的文字。
問題:
考慮以下字串:
(Text1)(DelimiterA)(Text2)(DelimiterC)(Text3)(DelimiterB)(Text4)
使用String.split() 分割此字串會產生:
Text3
Text4
Text4
預期的輸出:<code class="java">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("((?<;=;)|(?=;))")));</code>
[a , ;b, ;c, ;d]
[a, ;, b, ;, c, ;, d]<code class="java">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, ";")); ... }</code>
以上是如何拆分字串並保留分隔符號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!