代码如下,其中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"
デバッグを学ぶ必要があります。getY の文字列を見れば問題がわかります
24l.432
24は1ではなくLです
Sao Nian、メイン関数の setAddress は 3454.234, 24l.432 (24L、1 ではなく L) なので、y が間違っており、変換は失敗しました。エディターのフォントとして Source Code Pro を使用することをお勧めします。まだ見れます