从字符串中提取double

时间:2011-10-24 22:54:56

标签: java string

来自以下字符串:

radius: -0.118211 zone

如何以双重格式提取数字。

5 个答案:

答案 0 :(得分:6)

这样的事情:

String tmpstr = "radius: -0.118211 zone";
String asd[] = tmpstr.split(" ");
double dbl = Double.parseDouble(asd[1]);
System.out.println(dbl);

答案 1 :(得分:3)

你可以这样做:

String[] srt = "radius: -0.118211 zone".split(" ");
Double.parseDouble(srt[1]);

您应该添加错误检查以避免超出范围异常。

答案 2 :(得分:3)

String stringToStrip="radius: -0.118211 zone";
String stripedValue = (stringToStrip.replaceAll("[\\s+a-zA-Z :]",""));
double dbl = Double.parseDouble(stripedValue);
System.out.println(dbl);

或者只是为了好玩的一个班轮,由于不良的可读性,这绝对是不好的做法

System.out.println(Double.parseDouble("radius: -0.118211 zone".replaceAll("[\\s+a-zA-Z :]","")));

答案 3 :(得分:2)

String result="";
String str= "radius: -0.118211 zone";
String regex ="(-0.)+([0-9]+)";
Matcher matcher = Pattern.compile( regex ).matcher( str);
while (matcher.find( ))
{
result = matcher.group();  
System.out.println("number="+result);                 
}

答案 4 :(得分:1)

String foo = "radius: -0.118211 zone";

String [] result = foo.split(" ");

Double d = Double.valueOf(result[1]);
System.out.println(d);

这对你有用吗?