从String中取出整数和浮点数

时间:2017-05-13 00:57:55

标签: java string

我试图从给定的字符串中取出所有数字(整数和浮点数)。 例如:

"1.24 + 112 - 436 * 1.22 / 4 % 55"

我想得到1.24,剩下的就是字符串,所以我可以算一算。 像这样:

[1.24,+,112,-,436,1.22,/,4,%,55]

1 个答案:

答案 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-yx - 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)