我试图拆分一个字符串,但将分隔符保留在下一个标记的开头(如果可能的话)
示例:我正在尝试将字符串拆分F120LF120L
为
F120
L
F120
L
我试过了
StringTokenizer st = new StringTokenizer(str, "F,L");
但这只是返回
120
120
从文档中,您可以使用StringTokenizer st = new StringTokenizer(str, "L", true);
最后一个参数是一个布尔值,它指定也必须返回分隔符。
用蛮力怎么办?
String del = "L";
String str = "F120LLF120LLLLF12L";
int i = 0;
while (true) {
i = str.indexOf(del, i);
if (i == -1) break;
String a = str.substring(0, i);
String b = str.substring(i + del.length());
str = a + " " + del;
str += b.startsWith(del) || b.length() == 0 ? b : " " + b;
i = a.length() + del.length() + 1;
}
System.out.println(str);
// Will print: F120 L L F120 L L L L F12 L