Java String.split() - 使用 //s+ 拆分字符串不会将括号捕获为单独的元素?
Java String.split() - splitting a string using //s+ doesn't capture parentheses as separate elements?
假设我有一个字符串:"(2 * 32) + 5 ^ 2"
我想把它变成一个字符串数组:[(2, *, 32, ), +, 5, ^, 2]
即我不想捕获原始字符串中的空格,我想按空白字符拆分。
所以我尝试了 string.split**("\\s+")** 但结果看起来像 [(2,*,32), +, 5, ^, 2 ].
谁能解释一下为什么它不将“(2”拆分为(,2?谢谢!
这行得通,并且还有一个额外的好处,即当数字超过 1 位时不拆分,并且标记之间不需要空格。
String str = "(2*32) + 5 ^ 2";
String[] tokens = str.replace(" ", "").split("\b|(?=\D)");
输出:
[ (, 2, *, 32, ), +, 5, ^, 2 ]
假设我有一个字符串:"(2 * 32) + 5 ^ 2"
我想把它变成一个字符串数组:[(2, *, 32, ), +, 5, ^, 2]
即我不想捕获原始字符串中的空格,我想按空白字符拆分。
所以我尝试了 string.split**("\\s+")** 但结果看起来像 [(2,*,32), +, 5, ^, 2 ].
谁能解释一下为什么它不将“(2”拆分为(,2?谢谢!
这行得通,并且还有一个额外的好处,即当数字超过 1 位时不拆分,并且标记之间不需要空格。
String str = "(2*32) + 5 ^ 2";
String[] tokens = str.replace(" ", "").split("\b|(?=\D)");
输出:
[ (, 2, *, 32, ), +, 5, ^, 2 ]