我试图从给定的字符串中取出所有数字(整数和浮点数)。 例如:
"1.24 + 112 - 436 * 1.22 / 4 % 55"
我想得到1.24
,剩下的就是字符串,所以我可以算一算。
像这样:
[1.24,+,112,-,436,1.22,/,4,%,55]
答案 0 :(得分:0)
这里有
的正则表达式public static void main(String[] args) {
Pattern pat=Pattern.compile("\\d+\\.\\d++|\\d+|[-+=\\\\*/%]");
String str="1.24+112-436*1.22/4%55";
Matcher matcher = pat.matcher(str);
while(matcher.find()){
System.out.println(matcher.group(0));
}
}
输出:
1.24
+
112
-
436
*
1.22
/
4
%
55
要处理负数,您也会使用
Pattern.compile("-?\\d+\\.\\d++|-?\\d+|[-+=\\\\*/%]");
但是有一个问题,因为x-y
和x - y
之间无法区分,所以你必须假设如果两个操作数之间没有运算符,那么应该有additon +在x+(-y)
和public class node{
int data
node left; /*For binary Tree*/
node right; /*For binary Tree*/
node next; /*For the linked list*/
public node(int d){
this.data=d;
this.left=null;
this.right=null;
this.next=null;
}
中的结果将在两种情况下相等
但总而言之,解析数学方法可能既复杂又棘手,所以你最好使用现有的解决方案(google it out)