У меня есть эта строка с именем strg "12*2/5-3.0^3.23"
Я хочу превратить каждый int в эту строку в двойную. Я много пробовал, и ничего не работает. Я пробовал разделить строку везде, где есть специальный символ, а затем проверить, если он уже двойной или нет, делая что-то вроде if(splt[i].contains(".")){isDouble == true;}
, если это двойник, я не трогаю его, если это не двойной я сделал что-то вроде splt[i]=splt[i]+".0";
, чтобы изменить его на двойной. Я в порядке до этого момента, но как мне изменить его обратно в строку, а не на разделенную строку.Как превратить строку в double
-2
A
ответ
0
final class Playground {
private static List<Double> extract(final String input) {
final List<Double> results = new LinkedList<>();
StringBuilder builder = new StringBuilder(1);
for (final char character : input.toCharArray()) {
if (Character.isDigit(character) || (Character.compare(character, '.') == 0)) {
builder.append(character);
} else {
results.add(Double.valueOf(builder.toString()));
builder = new StringBuilder(1);
}
}
if (builder.length() > 0) {
results.add(Double.valueOf(builder.toString()));
}
return results;
}
public static void main(final String... args) {
System.out.printf("[numbers] %s", Playground.extract("12*2/5-3.0^3.23"))
}
}
Это не поможет. Что это делает? Как это отвечает на вопрос? –
Я также хочу включить специальные символы, такие как +, -, *, ^. –