【问题标题】:How can I convert certain characters of a String into a Float in Java?如何在 Java 中将 String 的某些字符转换为 Float?
【发布时间】:2016-10-06 00:45:25
【问题描述】:

我一直在从网页中抓取一些数据,在这种情况下,我只需要一个汇率。

通过网络抓取,我得到了一个包含此信息的字符串

¢559.41

但我只需要一个浮点数

559.41

我的代码是这样的(变量datos可以用来保存浮点数)

public static void main(String [] args) throws IOException{
    float datos = 0;
    String tasa = null;
    Document d = Jsoup.connect("http://indi-eco.appspot.com/tcd").timeout(6000).get();
    Elements ele= d.select("span#lblRefSellMsg");
    tasa = (ele.text());
    
}}

【问题讨论】:

  • 您是否考虑过删除非数字字符?

标签: java regex web-scraping


【解决方案1】:

类似问题的重复:java : convert float to String and String to float

但要回答您的问题:如果 web 元素总是在您想要的浮点数之前有一个货币令牌/符号前缀,您可以使用类似的东西简单地解析字符串:

tasa = ele.text().subString(1, ele.text().length());
datos = Float.parseFloat(tasa);

这将解析出前导第一个字符 - 货币标识符 - 然后尝试从字符串中获取浮点值并读入浮点变量数据类型。

【讨论】:

    【解决方案2】:

    如果字符串包含 text 然后是数字,那么您可以使用此正则表达式来匹配或拆分

    (([1-9]\d{0,2}(,\d{3})*)|(([1-9]\d*)?\d))(\.\d\d)?$
    

    https://regex101.com/r/PLioEH/1https://stackoverflow.com/a/17867041/2310289

    然后将结果字符串传递给Float.valueof (str);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      • 2019-12-11
      • 2011-12-08
      • 2021-09-30
      • 2011-06-17
      • 2011-01-26
      相关资源
      最近更新 更多