如何将一个字符串转换为double

时间:2017-02-12 03:26:57

标签: java string split int double

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

1 个答案:

答案 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"))
  }
}