如何只用字符分割数字和字符串

时间:2014-11-03 22:43:25

标签: java regex string split

我需要将String拆分为数字序列的部分和它们之间的字符。像这样:

input:    "123+34/123(23*12)/100"

output[]:["123","+","34","/","123","(","23","*","12",")","/","100"]

这是否可行,或者是否可以通过多个字符拆分字符串?否则,是否可以在Java中循环使用String?

2 个答案:

答案 0 :(得分:3)

您可以使用正则表达式。

String input = "123+34/123(23*12)/100";
Pattern pattern = Pattern.compile("\\d+|[\\+\\-\\/\\*\\(\\)]");
Matcher matcher = pattern.matcher(input);
while(matcher.find()) {
    System.out.println(matcher.group());
}

答案 1 :(得分:0)

使用基于前瞻断言的正则表达式来分割输入字符串。

String input = "123+34/123(23*12)/100";
System.out.println(Arrays.toString(input.split("(?<=[/)+*])\\B(?=[/)+*])|\\b")));

<强>输出:

[123, +, 34, /, 123, (, 23, *, 12, ), /, 100]