0

String s="3.78 hi bye"に変換するにはどうすればよいdouble c=3.78ですか?

同じ質問String s="hi 3.78 hi bye"(前のテキストを無視して 3.78 だけを取る)

4

2 に答える 2

5

.正規表現を使用して、数字または:以外のすべての文字を取り除くことができます。

String s = "hi 3.78 hi bye";
String numberOnly = s.replaceAll("[^0-9\\.]+", "");
double d = Double.parseDouble(numberOnly); //d == 3.78d

元の文字列が適切にフォーマットされていない場合に備えて、例外処理を追加する必要があります。

于 2012-10-07T10:00:42.510 に答える
1

正規表現を使用してみてください

Pattern doubleValue = Pattern.compile("\\d+\\.\\d+");
Matcher m = doubleValue.match(yourString);
if (m.find()) {
   return Double.parseDouble(m.group(0));
}
return null;
于 2012-10-07T10:00:27.660 に答える