我在Android工作,我需要你的帮助。在值的字符串中,我有
<item>(1 / 1024)</item>
我需要解析这个字符串以这种方式加倍
outputDouble = Double.parseDouble(unitsValues[outputPosition]);
所以这意味着这个
outputDouble = Double.parseDouble((1 / 1024));
这第二个代码的意思是,我找到了我需要的索引行,它试图将它从字符串转换为double,但这是不可能的,因为它可以识别这个字符串(1/1024)加倍。你有什么想法吗?
谢谢
答案 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)
分为两个Double
值1f
和1024f
,然后将它们分开以获得Double
值。