所以我试着把它分成不同的行,第一行是:
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)");