Maison  >  Questions et réponses  >  le corps du texte

java返回java.lang.NumberFormatException异常

代码如下,其中getX()成功有返回结果,getY()却报异常.

public class AddressUtilDemo {
    public static void main(String[] args){
        AddressUtil AddressUtil = new AddressUtil();
        AddressUtil.setAddress("3454.234,24l.432");
        System.out.println(AddressUtil.getX());
        System.out.println(AddressUtil.getY());
    }

}
class AddressUtil {
    private String address;
    public AddressUtil(){}
    public AddressUtil(String address){
        if(address.indexOf(",")>0){
            this.address = address;
        }
    }
    public Double getX(){
        String string = address.substring(0, address.indexOf(",")) ;
        return Double.parseDouble(string);
    }
    public Double getY(){
        String string = address.substring((address.indexOf(",")+1));
        return Double.parseDouble(string);
    }

    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address.trim();
    }
}

试过string.trim()等方法都无效.debug看到的string确实是预期中的数值.
以下是异常信息:

Exception in thread "main" java.lang.NumberFormatException: For input string: "24l.432"
PHP中文网PHP中文网2742 Il y a quelques jours666

répondre à tous(3)je répondrai

  • 阿神

    阿神2017-04-18 10:57:16

    Vous devriez apprendre à déboguer, regardez la chaîne dans getY et vous connaîtrez le problème

    répondre
    0
  • 阿神

    阿神2017-04-18 10:57:16

    24l.432
    24 c'est L, pas 1

    répondre
    0
  • 高洛峰

    高洛峰2017-04-18 10:57:16

    Sao Nian, le setAddress dans votre fonction principale est 3454.234, 24l.432 (24L, qui est L et non 1), donc y est faux et la conversion a échoué. Il est recommandé d'utiliser Source Code Pro comme police d'édition. et vous pouvez toujours le voir

    répondre
    0
  • Annulerrépondre