当我们使用String.Split()
java中对字符串进行分割的方法,其工作原理如下:
String s = "hello my dear";
String[] ss = s.split("[ ]");
数组ss
包含[Hello, my, dear]
但在这种情况下,空格(即分隔符)不是数组的一部分。
有没有什么方法可以使分隔符成为使用Java中字符串类的split方法生成的数组的一部分。
你可以这样做:-
"hello my dear".split("(?<=[ ])");
它在空格后面的空字符串上分割。这将为您提供包含如下元素的数组:-
hello_
my_
dear
_
意味着空间。
如果您希望分隔符是单独的数组元素,您可以这样做:-
System.out.println(Arrays.toString("a+b=c".split("(?<=[+=])|(?=[+=])")));
现在,它会在空字符串上拆分,该字符串后跟任一+ or =
,或之前有+ or =
。因此,上述情况下执行分割的所有位置如下: -
a + b = c
^ ^ ^ ^ <-- Empty strings before and after your pattern - `[+=]`
因此,数组中有 5 个元素。
输出: -
[a, +, b, =, c]
但是您使用了错误的工具来解析数学表达式。您不应该为此使用正则表达式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)