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”))
}
}
这没有帮助。这有什么用?这是如何回答这个问题的?我还希望包括特殊字符,如+,-,*,^。