如何拆分 java 中的字符串并包含分隔符
How to split a string in java and include the delimiter
我想使用分隔符 "AAAA" 拆分此字符串 "AHHHAAAAARTFUHLAAAAAHV" 并将其保存到包含分隔符的数组中。 (所需输出:[AHHHA、AAAA、RTFUHLA、AAAA、HV])。我在下面有以下代码,但输出与我想要的输出不一样。
String y = "AHHHAAAAARTFUHLAAAAAHV";
System.out.println(Arrays.toString(y.split("((?<=AAAA)|(?=AAAA))")));
输出:
[AHHH, A, AAA, A, RTFUHL, A, AAA, A, HV]
您可以使用 (?=AAAA[^A]|(?<=AAAA(?=[^A])))
(?=AAAA[^A]
:先行匹配 AAAA
和非 A
char
|
: 或
(?<=AAAA(?=[^A])))
:正向后视以匹配 AAAA
与前视以确保没有 A
字符
String y = "AHHHAAAAARTFUHLAAAAAHV";
System.out.println(Arrays.toString(y.split("(?=AAAA[^A]|(?<=AAAA(?=[^A])))")));
输出:
[AHHHA, AAAA, RTFUHLA, AAAA, HV]
我想使用分隔符 "AAAA" 拆分此字符串 "AHHHAAAAARTFUHLAAAAAHV" 并将其保存到包含分隔符的数组中。 (所需输出:[AHHHA、AAAA、RTFUHLA、AAAA、HV])。我在下面有以下代码,但输出与我想要的输出不一样。
String y = "AHHHAAAAARTFUHLAAAAAHV";
System.out.println(Arrays.toString(y.split("((?<=AAAA)|(?=AAAA))")));
输出: [AHHH, A, AAA, A, RTFUHL, A, AAA, A, HV]
您可以使用 (?=AAAA[^A]|(?<=AAAA(?=[^A])))
(?=AAAA[^A]
:先行匹配 AAAA
和非 A
char
|
: 或
(?<=AAAA(?=[^A])))
:正向后视以匹配 AAAA
与前视以确保没有 A
字符
String y = "AHHHAAAAARTFUHLAAAAAHV";
System.out.println(Arrays.toString(y.split("(?=AAAA[^A]|(?<=AAAA(?=[^A])))")));
输出:
[AHHHA, AAAA, RTFUHLA, AAAA, HV]