我有一个名为strg "12*2/5-3.0^3.23"
的字符串我希望将此字符串中的每个int转换为double。我已经尝试了很多,但没有任何工作。
我试过在任何有特殊字符的地方拆分字符串,然后通过像if(splt[i].contains(".")){isDouble == true;}
这样的事情来检查它是否已经是双重的,如果它是双重的我不会触摸它如果它我并没有把splt[i]=splt[i]+".0";
之类的东西改成双倍。到目前为止我还不错,但如何将其更改为字符串而不是拆分字符串。
答案 0 :(得分: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"))
}
}