Аз работя в андроид и имам нужда от вашата помощ низ в стойности имам това
<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
стойност.