java字符串分隔符,在标记中保留分隔符

时间:2012-05-12 15:07:54

标签: java string delimiter

我试图拆分一个字符串但是将分隔符保留在下一个标记的开头(如果可能的话)

示例:我正在尝试将字符串F120LF120L拆分为

F120
L
F120
L

我试过

StringTokenizer st = new StringTokenizer(str, "F,L");

但只返回

120
120

3 个答案:

答案 0 :(得分:2)

使用split(),出于所有实际目的,StringTokenizerdeprecated(它仅用于向后兼容)。这将有效:

String delimiter = "L";
String str = "F120LF120L";
String[] splitted = str.split(delimiter);

for (String s : splitted) {
    System.out.println(s);
    System.out.println(delimiter);
}

> F120
> L
> F120
> L

答案 1 :(得分:2)

docs,您可以使用StringTokenizer st = new StringTokenizer(str, "L", true);最后一个参数是一个布尔值,指定也必须返回分隔符。

答案 2 :(得分:0)

如何做暴力?

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