Java.lang.NumberFormatException error: empty string- Exchange Rate application(Java.lang.NumberFormatException 错误:空字符串 - 汇率应用程序)
问题描述
我正在编写一个程序,它从 http://www 获取每日汇率.tcmb.gov.tr/kurlar/today.xml 并将它们保存到列表中.这是我的代码:
I'm writing a program which gets daily exchange rates from http://www.tcmb.gov.tr/kurlar/today.xml and saves them to the List. Here is my code:
public class ParseTheXml {
    private List<CurrencyPojo> currencyList;
    public void setCurrencyList(List<CurrencyPojo> currencyList) {
        this.currencyList = currencyList;
    }
    public List<CurrencyPojo> getCurrencyList() throws ParserConfigurationException {
        currencyList = new ArrayList<CurrencyPojo>();
        try {
            DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
            URL url = new URL("http://www.tcmb.gov.tr/kurlar/today.xml");
            Document document = builder.parse(url.openStream());
            NodeList nodeList = document.getElementsByTagName("Currency");
            for (int i = 0; i < nodeList.getLength(); i++) { // döngü her currency türü için
                Element element = (Element) nodeList.item(i);
                CurrencyPojo currencyPojoObject = new CurrencyPojo(); 
                currencyPojoObject.setCrossOrder(Integer.parseInt(element.getAttribute("CrossOrder")));
                currencyPojoObject.setKod(element.getAttribute("Kod"));
                currencyPojoObject.setCurrenyCode(element.getAttribute("CurrencyCode"));
                currencyPojoObject.setUnit(Integer.parseInt(element.getElementsByTagName("Unit").item(0).getTextContent()));
                currencyPojoObject.setIsim(element.getElementsByTagName("Isim").item(0).getTextContent());
                currencyPojoObject.setCurrencyName(element.getElementsByTagName("CurrencyName").item(0).getTextContent());
                currencyPojoObject.setForexBuying(Double.parseDouble(element.getElementsByTagName("ForexBuying").item(0).getTextContent()));
       currencyPojoObject.setForexSelling(Double.parseDouble(element.getElementsByTagName("ForexSelling").item(0).getTextContent()));  //  Last 3 codes have Emppty String errors
                currencyPojoObject.setBanknoteBuying(Double.parseDouble(element.getElementsByTagName("BanknoteBuying").item(0).getTextContent()));
                currencyPojoObject.setBanknoteSelling(Double.parseDouble(element.getElementsByTagName("BanknoteSelling").item(0).getTextContent()));
                currencyList.add(currencyPojoObject);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return currencyList;
    } 
在获得 ForexSelling、BanknoteBuying 和 Banknote Selling 值的部分,我得到了
On the part that getting ForexSelling, BanknoteBuying and Banknote Selling values,I get
java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842)
    at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
    at java.lang.Double.parseDouble(Double.java:538)
    at javaxmlparseandshow.ParseTheXml.getCurrencyList(ParseTheXml.java:55)
    at javaxmlparseandshow.ParseTheXml.main(ParseTheXml.java:75)
有人可以帮我解决这些问题吗?提前致谢.
Can someone help me to fix these? Thanks in advance.
推荐答案
或者你可以设置0为空的xml字符串
Alternatively you can set 0 to empty xml strings
private double parseDouble(String val){
    if(val== null || val.isEmpty()) 
        return 0.0;
    else
        return Double.parseDouble(val);
}
前:
currencyPojoObject.setForexSelling(parseDouble(element.getElementsByTagName("ForexSelling").item(0).getTextContent())); 
                        这篇关于Java.lang.NumberFormatException 错误:空字符串 - 汇率应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Java.lang.NumberFormatException 错误:空字符串 - 汇率应
				
        
 
            
        - 如何指定 CORS 的响应标头? 2022-01-01
 - Eclipse 的最佳 XML 编辑器 2022-01-01
 - 在 Java 中,如何将 String 转换为 char 或将 char 转换 2022-01-01
 - java.lang.IllegalStateException:Bean 名称“类别"的 BindingResult 和普通目标对象都不能用作请求属性 2022-01-01
 - 转换 ldap 日期 2022-01-01
 - 获取数字的最后一位 2022-01-01
 - 未找到/usr/local/lib 中的库 2022-01-01
 - 如何使 JFrame 背景和 JPanel 透明且仅显示图像 2022-01-01
 - GC_FOR_ALLOC 是否更“严重"?在调查内存使用情况时? 2022-01-01
 - 将 Java Swing 桌面应用程序国际化的最佳实践是什么? 2022-01-01
 
						
						
						
						
						
				
				
				
				