Java 如何将字符串转换为双精度

Java 如何将字符串转换为双精度,java,string,split,int,double,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”的操作将其更改为双精度。到目前为止我还可以,但我如何将它改回字符串而不是拆分字符串。最后一节课

我有一个名为
strg“12*2/5-3.0^3.23”
的字符串,我想把这个字符串中的每一个int都转换成一个double。我已经试了很多次了,但都没有效果。 我尝试过在有特殊字符的地方拆分字符串,然后通过执行类似于
if(splt[i].contains(“.”){isDouble==true;}
如果它是一个双精度字符,我就不碰它,如果它不是双精度字符,我会执行类似于
splt[i]=splt[i]+.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"))
  }
}
私有静态列表提取(最终字符串输入){ 最终列表结果=新建LinkedList(); StringBuilder=新的StringBuilder(1); for(最后一个字符:input.toCharArray()){ if(Character.isDigit(Character)| |(Character.compare(Character,'.')==0)){ builder.append(字符); }否则{ results.add(Double.valueOf(builder.toString()); 生成器=新的StringBuilder(1); } } 如果(builder.length()>0){ results.add(Double.valueOf(builder.toString()); } 返回结果; } 公共静态void main(最终字符串…参数){ System.out.printf(“[number]%s)”,playerd.extract(“12*2/5-3.0^3.23”)) } }
这没有帮助。这有什么用?这是如何回答这个问题的?我还希望包括特殊字符,如+,-,*,^。