从字符串转换为整数java jdk 1.6

时间:2013-02-27 16:25:54

标签: java type-conversion

我最近开始学习java编码,还有一些需要解决的问题。

我刚刚遇到这个问题,当转换一个内部带有特殊参数的字符串时(例如“3 ^ 5 + 7 * 10”或“(1/2)”)。在这种情况下,Integer.parseInt会返回一个错误,指出该数字不受支持。 而实际的代码是:

int i = Integer.parseInt("5*3^2+3^2");

提前致谢:)

更新:我是否可以使用另一个库进行转换,AFAIK过去在C#中非常容易。

4 个答案:

答案 0 :(得分:4)

您不能将这样的表达式发送到parseInt。它旨在将数字的给定String表示形式转换为Integer。您必须获得表达式的解决方案,然后然后将结果传递给parseInt。虽然如果你在java代码中得到解决方案,那么无论如何它都是一个数字。

答案 1 :(得分:2)

您将不得不自己编写代码解析字符串并对其进行评估,我会亲自将其分解为令牌并对其进行评估。

另外,这里有一个使用Java的脚本功能来做这件事的人的例子。 Algebra equation parser for java

答案 2 :(得分:0)

这是因为parseInt将解析正确的数字字符串值。这是一个完整的数学表达式。

String不能在其内部计算数学运算,因为它只知道它所知道的字符和其他任何东西。

答案 3 :(得分:0)

好的,我自己找到了解决方案。使用JDK 1.6,您可以使用JavaScript,这种转换与C#一样强大。如此糟糕,使用java就是这样的痛苦。我认为大多数程序员使用C ++是有原因的。您可以查看the actual answer here,也不要忘记赞成这一点。