[英]Java: Splitting string equation into numbers and operators
我正在尝试将字符串方程拆分为两个数组:数字和运算符。
String expr = "3/20.0";
String[] numbers = expr.split("[+-/\\*]");
String[] operators = expr.split("[^+-/\\*]+");
System.out.println(Arrays.toString(numbers));
System.out.println(Arrays.toString(operators));
但我的代码打印出来: [3, 20, 0] [, /, .]
但我想得到[3, 20.0] [, /]
我不确定为什么逗号在运算符数组的前面,但主要是我只想将 20.0 作为数字数组中的一个元素,并将小数点保留在我的运算符数组之外。
逗号只是向您显示元素分区。
这个[,
表示第一个元素是空白的。
试试这些原始的正则表达式
对于数字,在[^\\d.]+
上拆分
对于运算符,拆分[\\d.]+
而且,我不知道 Java split 是否可以删除空元素,但您想
如果可以的话,做一个检查发布过程。
拆分笔记 -
[\\d.]+
是一个通常匹配数字的类,即。 'dd.dd'(叶运算符)
[^\\d.]+
是与运算符匹配的反函数(叶数)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.