Java中StringUtils中的插入/添加/追加选项
在Java中是否可以将a/b格式的字符串转换为double? 例如:str=“4/5”; 我可以解析它并得到float/double值吗?Java中StringUtils中的插入/添加/追加选项,java,string,Java,String,在Java中是否可以将a/b格式的字符串转换为double? 例如:str=“4/5”; 我可以解析它并得到float/double值吗? 我使用了parseDouble,但不起作用,它需要像“34.33”这样的输入字符串。如果您的表达式始终是“a/b”类型,您可以尝试以下操作: String str = "4/5"; String parts[] = str.split("/"); double res = Double.parseDouble(parts[0])/Double.parseDo
我使用了parseDouble,但不起作用,它需要像“34.33”这样的输入字符串。如果您的表达式始终是“a/b”类型,您可以尝试以下操作:
String str = "4/5";
String parts[] = str.split("/");
double res = Double.parseDouble(parts[0])/Double.parseDouble(parts[1]);
否则,请使用上述注释中建议的表达式评估工具。使用以下工具:
String s = "35/6";
s = s.replace('/', '.');
double d = Double.parseDouble(s);
在javascript中,您可以使用函数“eval”来完成它。但是在Java中,没有类似的函数。所以您可以使用ScriptEngine在Java中完成它
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine se = manager.getEngineByName("js");
String str = "4/5";
Double result =(Double) se.eval(str);
System.out.println(result);
您想要的是计算数学表达式,然后将结果解析为double。有用于计算字符串格式的数学表达式的库,或者您可以为其编写自己的方法。这可以帮助您:我认为OP希望计算
4/5
并保存其双精度值。您建议使用/
作为十进制分隔符标记。我认为那是不对的。您的代码将导致d=35.6
,而它应该是d=5.83
@PabloFranciscoPérezHidalgo也许您是对的为什么要使用Javascript来回答这个问题?