gpt4 book ai didi

java - 我不知道为什么输出会重复多次,也不知道如何格式化输出。

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

我想从字符串中提取最后四位数字,并将其视为邮政编码。

此代码将接收用户输入,检查最后四个字符是否为数字。

如果是,请将其提取并显示在屏幕上。如果不是,则返回错误。

现在,我想我可以提取它,但我不知道如何用格式显示它(我不能简单地覆盖 toString() 方法,因为我的项目中的许多其他部分需要格式化显示,而每个部分使用不同的格式。 )

另外,为什么代码会生成多个输出,而不是一个?

这是代码:

    public static void main(String[] args) {
String address;
Scanner scn = new Scanner(System.in);
address = scn.next();
address=address.trim();
String postcode = "1234";
//this part extract postcode for further process.
for(int count=1;count<5;count++)
{
if(Character.isDigit(address.toCharArray()[address.length()-count]))
{
String[] split = postcode.split(address);
System.out.format("%s %s %n", "PO is: ", split);
}
else
{
System.out.println("PO invalid!");
System.exit(0);
}
}
}

一个可能的输出是这样的:

qweqwr2132

PO 是:[Ljava.lang.String;@a46701

PO 是:[Ljava.lang.String;@166a22b

PO 是:[Ljava.lang.String;@120cc56

PO 是:[Ljava.lang.String;@47393f

如果最后有 1 位数字,输出将显示一次。如果我有 2 位数字,将显示两次。如果最后有 4 个或更多数字,输出最多会显示 4 次。

我意识到if部分一定有问题,但我不知道为什么。

感谢您的耐心等待。

最佳答案

我采用了不同的方法来解决您的问题。

public static void main(String[] args) {

String address;
Scanner scn = new Scanner(System.in);
address = scn.next();
address=address.trim();
String postcode = "";

if(address.length() < 4) {
System.out.println("The address is less that four characters long.");

} else {

postcode = address.substring(address.length() - 4);

try {
int code = Integer.parseInt(postcode);
System.out.println("The post code is :" + code);

} catch(NumberFormatException ex) {
System.out.println("ERROR");
}

}
}

关于java - 我不知道为什么输出会重复多次,也不知道如何格式化输出。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30319713/

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