Java 如何拆分字符串只获取特定值

Java 如何拆分字符串只获取特定值,java,string,Java,String,我有一个字符串,“900.9/6.00%”,我想把它拆分成字符串,只得到特定值“6.00”,而将特定值“6.0”乘以bettingAmount的2 bettingAmount : 2.000 bettingAmount : 900.9/6.00% 我的代码: String string = "900.9/6.00%"; String[] parts = string.split("/"); String part1 = parts[0]; // 900.9 String part2 = p

我有一个字符串,“900.9/6.00%”,我想把它拆分成字符串,只得到特定值“6.00”,而将特定值“6.0”乘以bettingAmount的2

 bettingAmount : 2.000
 bettingAmount : 900.9/6.00%
我的代码:

String string = "900.9/6.00%";
String[] parts = string.split("/");
String part1 = parts[0]; // 900.9
String part2 = parts[1]; // 6.00%
这意味着第一个字符串将包含“/”之前的字符,第二个字符串将包含“/”之后的字符。但问题是我只需要得到值“6.0”。我该怎么做?恳请告知

String[] parts = string.split("[/%]");
在任何字符/或%上拆分

double pct = Double.parseDouble(part2);
pct *= 2; // or such
您是否尝试过:

part2 = part2.replace("%", "");
它将%替换为零

然后,正如Joop建议的那样,您可以:

double pct = Double.parseDouble(part2);

:-)

我想用正则表达式可以做到这一点,但它可能有点复杂:

String REGEX = "^(\\d+\\.\\d+)/(\\d+\\.\\d+)";
String string = "900.9/6.00%";
String part1 = "";
String part2 = "";

Pattern p = Pattern.compile(REGEX);
Matcher m = p.matcher(string);
if(m.find()){
        MatchResult mr = m.toMatchResult();
        part1 = mr.group(1)
        part2 = mr.group(2)
}
否则,您可以在拆分字符串之前删除“%”:

String string = "900.9/6.00%";
string = string .replace("%", "");

基于
子字符串的解决方案

String xy="900.9/6.00%";
double result=Double.parseDouble(xy.substring(xy.indexOf("/")+1,xy.indexOf('%')))*2;
System.out.println(" result "+result); // result 12.0
相同代码:

String xy="900.9/0.06%";
double result=Double.parseDouble(xy.substring(xy.indexOf("/")+1,xy.indexOf('%')))*2;
System.out.println(" result "+result); // result 0.12
感谢@codechat

我修改了代码,得到了0.12的结果

double result=Double.parseDouble(part6.substring(part6.indexOf("/")+1,part6.indexOf('%')))*2/100.0;
        System.out.println(" result "+result); // result 0.12

“我只需要获取值”6.0“什么意思?如果是
6.79%
,你想要
6.7
或什么的?@MickaëlB是的,如果是;s 6.79%,如果你想避免保存数组变量,我需要得到6.79%看看我的回答,如果我想让它乘以0.06*2的值怎么办?哦,我不知道你在计算时想要分数!不管怎么说,很好,你自己解决了:)
double result=Double.parseDouble(part6.substring(part6.indexOf("/")+1,part6.indexOf('%')))*2/100.0;
        System.out.println(" result "+result); // result 0.12