我需要将String拆分为数字序列的部分和它们之间的字符。像这样:
input: "123+34/123(23*12)/100"
output[]:["123","+","34","/","123","(","23","*","12",")","/","100"]
这是否可行,或者是否可以通过多个字符拆分字符串?否则,是否可以在Java中循环使用String?
答案 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]