/ / Преизчисляване изчисление от низ правя двойно [дубликат] - Java, Android

Изчисляване на реализациите от низове [double] - java, android

Аз работя в андроид и имам нужда от вашата помощ низ в стойности имам това

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

Трябва да анализирам този низ, за ​​да удвоя този начин

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

така че това означава това

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

Този втори код означава, че намирам линията поИндексът ми трябва и се опитва да го преобразува от низ в двоен, но това е невъзможно, защото може да разпознае този низ (1/1024), за да се удвои. Имате ли някакви идеи?

Благодаря ти

Отговори:

1 за отговор № 1

Няма вграден метод, който да направи това ... Въпреки това бихте могли да направите това с външна библиотека като BeanShell :

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

За да използвате Beanshell с Android, изтеглетеbsh-core.jar файл, поставете го в папка / lib във вашия проект и настройте настройките на Eclipse или Ant скрипта, за да направите справка, че JAR по време на компилация и опаковка.


0 за отговор № 2

Може би това ще ви илюстрира как да направите парсирането с помощта на 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());

РЕДАКТИРАНЕ Аз също добавих подстригване на струните, поради опасността от фалшиви интервални символи.


0 за отговор № 3

Използвайки regex разбор (1 / 1024) на две Double стойности 1f и 1024f и след това ги разделяйте, за да получите a Double стойност.