java字符串分隔符,将分隔符保留在令牌中

java字符串分隔符,将分隔符保留在令牌中,java,string,delimiter,Java,String,Delimiter,我试图拆分一个字符串,但如果可能的话,请将分隔符保留在下一个标记的开头 示例:我正在尝试将字符串F120LF120L拆分为 我试过了 StringTokenizer st = new StringTokenizer(str, "F,L"); 但这一切又回来了 120 120 对于所有实际用途,StringTokenizer仍然存在,只是为了向后兼容。这将有助于: String delimiter = "L"; String str = "F120LF120L"; String[] split

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

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

我试过了

StringTokenizer st = new StringTokenizer(str, "F,L");
但这一切又回来了

120
120
对于所有实际用途,StringTokenizer仍然存在,只是为了向后兼容。这将有助于:

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
对于所有实际用途,StringTokenizer仍然存在,只是为了向后兼容。这将有助于:

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

从中,可以使用StringTokenizer st=new StringTokenizerstr,L,true;最后一个参数是一个布尔值,指定也必须返回分隔符

从中,可以使用StringTokenizer st=new StringTokenizerstr,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

用蛮力来做怎么样

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

是否仅按“F”和“L”拆分,或同时按“,”拆分?是否仅按“F”和“L”拆分,或同时按“,”拆分?这样,F将分别返回。。不是F120!对于他的示例,下面的代码可以工作:StringTokenizer st=new StringTokenizerstr,L,true;啊,对。你应该仔细阅读我会更新答案的,谢谢!感谢大家的快速回答:-顺便说一句,请注意,如果您按toksn拆分,您也不需要最后一个参数。也就是说,你只是用L作为代币,而不是Fyeah我会用F作为代币,有时在L之后会有一些数字,但谢谢,我现在正在正确的轨道上,我希望自己能弄清楚剩下的:-这样,F会单独返回。。不是F120!对于他的示例,下面的代码可以工作:StringTokenizer st=new StringTokenizerstr,L,true;啊,对。你应该仔细阅读我会更新答案的,谢谢!感谢大家的快速回答:-顺便说一句,请注意,如果您按toksn拆分,您也不需要最后一个参数。也就是说,你只是用L作为代币,而不是Fyeah我会用F作为代币,有时在L后面会有一些数字,但谢谢,我现在正在正确的轨道上,我希望自己能找出其余的:-str.splitdelimiter;它返回不带Lstr.splitdelimiter的F120数组;它的返回数组为F120,不带LYou,您当然必须将空格字符串替换为换行符字符串\n您当然必须将空格字符串替换为换行符字符串\n