我有一个要分割的字符串;

String x = "abc4.5efg2hij89k.9";

我希望输出为
abc, 4.5, efg, 2, hij, 89, k, .9

我可以轻松地将数字和非数字分开,但是使用'。'。被认为是角色。
x.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)")
[abc, 4, ., 5, efg, 2, hij, 89, k., 9]

支持双打的最佳方法是什么?

最佳答案

您是否考虑过字母字符而不是\D token ?

String s = "abc4.5efg2hij89k.9";
String[] parts = s.split("(?<=[a-z])(?=[\\d.])|(?<=\\d)(?=[a-z])");
System.out.println(Arrays.toString(parts));

输出量
[abc, 4.5, efg, 2, hij, 89, k, .9]

07-24 22:32