Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中StringUtils中的插入/添加/追加选项_Java_String - Fatal编程技术网

Java中StringUtils中的插入/添加/追加选项

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

在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.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来回答这个问题?