拆分文本包含字符串列表的编号

时间:2017-10-03 06:38:27

标签: java

我有数字,想要将其拆分为使用特殊字符的字符串列表,并删除它上面的特殊字符,如分割

1,245.00
to
1
,
245
.
00

2 个答案:

答案 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

在这里演示:

Rextester

答案 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