gpt4 book ai didi

Java:字符串格式化

转载 作者:行者123 更新时间:2023-12-01 13:12:04 25 4
gpt4 key购买 nike

正在尝试打印...

64506 St. Joseph, MO (+39.76580, +94.85060)

当前代码

public class PostalCodes {
private String city;
private double latitude;
private double longitude;
private double zip;
private String state;

public PostalCodes(double aZip, String aCity, String aState, double aLatitude, double aLongitude)
{
city = aCity;
latitude = aLatitude;
longitude = aLongitude;
zip = aZip;
state = aState;
}

void setZip(double aZip)
{
zip=aZip;
}

void setState(String aState)
{
state=aState;
}


void setLocation(String aCity)
{
city = aCity.trim();
}
void setLatitude(double lat)
{
latitude = lat;
}
void setLongitude(double long1)
{
longitude = long1;
}
public String getState()
{
return state;
}
public double getZip()
{
return zip;
}
public String getLocation()
{
return city;
}
public double getLatitude()
{
return latitude;
}
public double getLongitude()
{
return longitude;
}
public String toString()
{
String result = String.format("%d %s,%s (%1.3f; %1.3f)",zip, city, state, latitude,longitude);
return result;
}

}

我明白了

Exception in thread "main" java.util.IllegalFormatConversionException: d != java.lang.Double
at java.util.Formatter$FormatSpecifier.failConversion(Unknown Source)
at java.util.Formatter$FormatSpecifier.printInteger(Unknown Source)
at java.util.Formatter$FormatSpecifier.print(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.lang.String.format(Unknown Source)
at PostalCodes.toString(PostalCodes.java:63)

作为一个错误。我完全按照类笔记中的方式做的,不知道我哪里出错了。感谢您抽出宝贵的时间,如果可以的话,请帮我简化一下,我是这里的第一次 Java 程序员。

最佳答案

由于我的评论或多或少是一个答案,因此我将其发布在这里,以便我可以详细说明

正如其他人所说,您的问题是由于格式化程序 token 不正确造成的。简而言之,%d 用于整数,%f 用于 float (包括 double )。

但是,我会避免使用数字字段(整数、 float 、 double )来存储邮政编码等内容。与电话号码一样,它们不再是“数字”,而是恰好是数字的字符集合(例如,在美国邮政编码的情况下也恰好仅限于数字)。

此外,为了便于讨论,如果邮政编码需要前导零,您将无法使用数字字段保留它。换句话说,将邮政编码存储为数字会使 01234 显示为 1234,这在涉及此类标识值时并不完全相同。

此外,使用非数字存储(即文本)允许您存储混合字符代码,例如加拿大邮政编码(例如“K1Q 9S8”)等(假设而言)。我认为这个要求与您的情况无关,但这种“面向 future ”有时是一个值得采用的好习惯,特别是考虑到我已经描述的其他要点。

因此,实际上,我会将 zip 变量的数据类型更改为 String:

private String zip;

并使用字符串格式化程序标记 (%s):

public String toString() {
String result = String.format("%s %s,%s (%1.3f; %1.3f)",zip, city, state, latitude,longitude);
return result;
}

关于Java:字符串格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22774308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com