2
我想通过扫描程序拆分下面的多行字符串。我想分裂开始与线 “A |”基于分隔符的拆分多行字符串
Input
A|14|23|656
B|15|ga|a
A|11|424|6262
输出
Group
A|14|23|656
B|15|ga|a
Group
A|11|424|6262
我试图扫描仪如下。
public static void main(String[] args) {
String abcd = "A|14|23|656\r\nB|15|ga|a\r\nA|11|424|6262";
try (final Scanner scan = new Scanner(abcd)) {
scan.useDelimiter("^A\\|");
while (scan.hasNext()) {
System.out.println("Group");
System.out.println("A|" + scan.next());
}
}
}
实际:只是考虑匹配A |第一行不在其他行上的。
Group
A|14|23|656
B|15|ga|a
A|11|424|6262
参见[这个答案](https://stackoverflow.com/a/45293555/2310289)有关如何使用多线拆分 –
@ScaryWombat。谢谢。我试过这个解决方案String [] paragraph = abcd.split(“(?m)^ A \\ | $ \\ R?”);但这似乎并不奏效。 – Patan
@帕坦我认为即使是第一线也没有得到考虑。你可以试试这个:'String abcd =“B | 15 | ga | a \ r \ nA | 14 | 23 | 656 \ r \ nA | 11 | 424 | 6262”'请检查输出。 –