如何评估字符串中的表达式?

时间:2011-11-02 16:15:35

标签: java

我想从字符串中评估表达式..

public static void main(String[] args) {

        String test = "2+3";
        System.out.println(Integer.parseInt(test));
    }

它返回一个NumberFormatException错误。我该怎么解决这个问题?

1 个答案:

答案 0 :(得分:4)

这不适用于基本的java(AFAIK),可能还有一些表达式评估器库。 你必须解析字符串。 E.g:

String[] nums = string.split("+");
List<Integer> numbers = new ArrayList<Integer>();
for(String num : nums) {
    numbers.add(Integer.parseInt(num));
int result = addNumbers(numbers);

其中addNumbers是您编写的用于在列表中添加数字的方法。 如果你有更多的操作,你也必须解析运算符,构建表达式树然后遍历它。