代碼如下,其中getX()成功有返回結(jié)果,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確實是預期中的數(shù)值.
以下是異常信息:
Exception in thread "main" java.lang.NumberFormatException: For input string: "24l.432"
認證0級講師
You should learn to debug, look at the string in getY and you will know the problem
Sao Nian, the setAddress in your main function is 3454.234, 24l.432 (24L, which is L and not 1), so y is wrong and the conversion failed. It is recommended to use Source Code Pro as the editor font and you can still see it