我有一个像"Humidity: 14.00% Temperature:28.00 C"
这样的字符串。
我想从字符串中提取两个浮点值,我该怎么办?
答案 0 :(得分:6)
首先,看看@Bathsheba的评论 我有一种直截了当的方式,但这并不聪明或普遍。
String[] array = string.replaceAll("[Humidity:|Temperature:|C]", "").split("%");
您将收到String[]{"14.00", "28.00"}
,然后您可以使用Float
或Float.parse()
方法将这些数组值转换为Float.valueOf()
。
Arrays.stream(array).map(Float::valueOf).toArray(Float[]::new);
答案 1 :(得分:3)
(免责声明:如果你想要一些更清洁和可重复使用的代码,你应该看看@Andrew Tobilko的答案。)
首先,您需要将字符串分成两个子字符串。您可以使用
String a = yourString.substring(10,14);
String b =yourString.substring(29,33);
然后,使用Float.parseFloat(String s)从字符串中提取浮点数:
Float c=Float.parseFloat(a); Float d= Float.parseFloat(b);
那就是你的String正好是你写的那个。否则,在调用String.substring(int beginIndex,int endIndex)时,应确保使用正确的索引。
答案 2 :(得分:2)
您可以尝试使用正则表达式
String regex="([0-9]+[.][0-9]+)";
String input= "Humidity: 14.00% Temperature:28.00 C";
Pattern pattern=Pattern.compile(regex);
Matcher matcher=pattern.matcher(input);
while(matcher.find())
{
System.out.println(matcher.group());
}