1

私はアンドロイドで働いています。あなたの助けが必要です。値の文字列で私はこれを持っています

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

この文字列を解析して、この方法で2倍にする必要があります

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

だからこの意味

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

この 2 番目のコードは、必要なインデックスで行を見つけ、文字列から double に変換しようとしますが、この文字列 (1 / 1024) を double に認識できるため、不可能であることを意味します。あなたはなにか考えはありますか?

ありがとうございました

4

3 に答える 3

1

それを行うための組み込みメソッドはありません...しかし、BeanShellのような外部ライブラリでそれを行うことができます:

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

Android で Beanshell を使用するには、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());

EDITまた、偽の間隔記号の危険性があるため、文字列にトリミングを追加しました。

于 2012-07-08T07:58:00.487 に答える
0

regexparseを使用(1 / 1024)して 2 つのDouble1f1024f分割し、それらを分割して値を取得しDoubleます。

于 2012-07-08T07:59:00.637 に答える