如何拆分字符串只获得一个特定的值

时间:2016-07-01 08:44:48

标签: 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 = parts[1]; // 6.00%

这意味着第一个字符串将包含' /'之前的字符,第二个字符串将包含' /'之后的字符。但问题是我只需要获得价值" 6.0"。我怎样才能做到这一点?请建议

6 个答案:

答案 0 :(得分:3)

基于substring的解决方案

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

答案 1 :(得分:1)

String[] parts = string.split("[/%]");

分割任何char /或%。

double pct = Double.parseDouble(part2);
pct *= 2; // or such

答案 2 :(得分:1)

你试过了吗?

double pct = Double.parseDouble(part2);

它取代了%。

然后正如乔普建议你做的那样:

 @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.e(LOG_TAG, "Service Started");
        try {

            }
        } catch (Exception e) {
            e.printStackTrace();
        }


        return START_STICKY;
    }

: - )

答案 3 :(得分:1)

String valuetoSave = string.split("/")[1]
//valuetoSave = "6.00%"
valuetoSave = valuetoSave.split("%")[0]
//valuetoSave = "6.00"

答案 4 :(得分:0)

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

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("%", "");

答案 5 :(得分:0)

感谢@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