Java:将字符串方程拆分为数字和运算符

标签 java arrays regex string split

我试图将字符串方程拆分为两个数组:数字和运算符。

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.]+,它匹配运算符(留下数字)

关于Java:将字符串方程拆分为数字和运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46840162/

相关文章:

php - 字母表中的每个字母是否至少在一个字符串中出现一次?

java - 仅在句子中匹配秒词(如果是 STOP 或 stop 或 StOppp)

java - 断言字符串具有一定长度(Java)

java - 类变量声明意外结束

java - 使用Java获取终端命令的输出

c++ - 如何存储英语词典?

r - 从字符串中提取状态缩写和邮政编码

java - Swing 文本字段方向

php - 如何获得集合中元素的所有可能组合? (电源组)

javascript - 对包含数字和字符串的二维数组进行排序