字符串的转换计算为double

时间:2012-07-08 07:48:45

标签: java android

我在Android工作,我需要你的帮助。在字符串中,我有

<item>(1 / 1024)</item>

我需要解析这个字符串以这种方式加倍

outputDouble = Double.parseDouble(unitsValues[outputPosition]);

所以这意味着这个

outputDouble = Double.parseDouble((1 / 1024));

这第二个代码的意思是,我找到了我需要的索引行,它试图将它从字符串转换为double,但这是不可能的,因为它可以识别这个字符串(1/1024)加倍。你有什么想法吗?

谢谢

3 个答案:

答案 0 :(得分:1)

没有内置方法可以做到这一点......但是你可以使用像BeanShell这样的外部库来做到这一点:

Interpreter interpreter = new Interpreter();
interpreter.eval("(1 / 1024)");

要在Android上使用Beanshell,请下载bsh-core.jar文件,将其放在项目的/ lib文件夹中,并调整Eclipse设置或Ant脚本以在编译和打包期间引用该JAR。

答案 1 :(得分:0)

也许这会说明如何使用String#split进行解析。没有直接的方法来进行转换。

String representation = getString(R.string.my_repr);
String [] splits  = representation.split("/");
Double num = Double.valueOf(splits[0].trim()) / Double.valueOf(splits[1].trim());

编辑我还在字符串中添加了修剪,因为存在伪间隔符号的危险。

答案 2 :(得分:0)

regex解析(1 / 1024)分为两个Double1f1024f,然后将它们分开以获得Double值。