我有数字,想要将其拆分为使用特殊字符的字符串列表,并删除它上面的特殊字符,如分割
1,245.00 to 1 , 245 . 00
答案 0 :(得分:1)
使用lookaheads分割你的字符串:
String input = "1,245.00";
String[] parts = input.split("(?=[^A-Za-z0-9])|(?<=[^A-Za-z0-9])");
for(String part : parts) {
System.out.println(part);
}
如果在任何位置是字符串,前一个或前一个字符是非字母或数字,则会分裂。
<强>输出:强>
1
,
245
.
00
在这里演示:
答案 1 :(得分:0)
有多种选择。你可以使用边界(积分到@ 4castle),但也可以使用前瞻(previous reply的信用额度)和看后面。
以下三个选项都有效:
String input = "1,245.00";
// look-ahead only
Stream.of(input.split("(?=[,.])|(?<=[^\\d])")).forEach(System.out::println);
System.out.println();
// Boundary
Stream.of(input.split("\\b")).forEach(System.out::println);
System.out.println();
// Mix of look-behind and look-ahead
Stream.of(input.split("(?![\\d])|(?<=[^\\d])")).forEach(System.out::println);
所有打印在一起:
1
,
245
.
00
1
,
245
.
00
1
,
245
.
00