根据关键字将字符串拆分为两个diff子字符串



所以我试着把它分成不同的行,第一行是:

Aaron123,Nesmith456,Bruno789,Cabo12,Jay21,Smith22 //-- 1st line
Aaron12,Nesmith22,Bruno33,Cabo44,Jay55,Smith66 //-- 2nd line

我现在使用的代码是:

String s1 =  ("Aaron123,Nesmith456,Bruno789,Cabo12,Jay21,Smith22,Aaron12,Nesmith22,Bruno33,Cabo44,Jay55,Smith66);
String s[];
s = s1.split("Aaron");
System.out.print(s[0]);

代码完成后,它分割行,但两行的aaron部分都丢失了,实际上分割成3行而不是2行,其中第一行出于某种原因只是空的,所以我需要帮助修复这个

输出错误:

123,Nesmith456,Bruno789,Cabo12,Jay21,Smith22
12,Nesmith22,Bruno33,Cabo44,Jay55,Smith66

我想要的输出:

Aaron123,Nesmith456,Bruno789,Cabo12,Jay21,Smith22 //-- 1st line
Aaron12,Nesmith22,Bruno33,Cabo44,Jay55,Smith66 //-- 2nd line

我们实际上可以将其描述为在,(?=Aaron)上的拆分,它在逗号后面拆分Aaron。注意,在分割期间,Aaron不会消耗,因为我们使用了forward。

String s1 = "Aaron123,Nesmith456,Bruno789,Cabo12,Jay21,Smith22,Aaron12,Nesmith22,Bruno33,Cabo44,Jay55,Smith66";
String[] parts = s1.split(",(?=Aaron)");
System.out.println(Arrays.toString(parts));

这个打印:

[Aaron123,Nesmith456,Bruno789,Cabo12,Jay21,Smith22,
Aaron12,Nesmith22,Bruno33,Cabo44,Jay55,Smith66]

使用正面的展望。您实际上希望它在","上分割,但仅当逗号后的文本是"Aaron"时。对应的正则表达式是,(?=Aaron),其中(?= )部分表示"检查以下文本是否为this,但不将其合并到匹配中"。

s = s1.split(",(?=Aaron)");

最新更新