1

我在安卓工作,我需要你的帮助。在值的字符串中我有这个

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

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

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

所以这意味着

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

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

谢谢

4

3 回答 3

1

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

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

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

于 2012-07-08T08:16:44.017 回答
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());

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

于 2012-07-08T07:58:00.487 回答
0

使用regexparse(1 / 1024)分成两个Double1f1024f然后将它们分开得到一个Double值。

于 2012-07-08T07:59:00.637 回答