gpt4 book ai didi

java - 将以零开头的 int 转换为字符串

转载 作者:行者123 更新时间:2023-12-03 02:43:00 35 4
gpt4 key购买 nike

我正在尝试将以 0 开头的整数转换为要存储在电话目录中的字符串,因为电话号码可以以 0 开头。

我已经尝试过 -

int num = 0125;
String.format("%04d",num);

Integer.toString(num);

DecimalFormat df = new DecimalFormat("0000");
df.format(num);

每次我得到输出 0085 而不是 0125

如何将带有前导零的 int 转换为十进制格式的字符串?

最佳答案

以零开头的 int 值被视为类似于十六进制数的八进制数(具有 0 - 7 的数字)。因此你的值(value)是:

0125

等于:1 * 82 + 2 * 81 + 5 * 80 == 64 + 16 + 5 == 85

不要尝试将电话号码表示为 int。而是使用 String 并使用正则表达式对其进行验证。如果将两者结合起来,您也可以用电话号码自己的类型来表示电话号码,例如:

public class PhoneNumber {

private final String number;

public PhoneNumber(String number) {
if (number == null || !number.matches("\\d+([-]\\d+)?")) {
throw new .....
}
this.number = number;
}
}

正则表达式只是匹配电话号码的示例,例如:12340123-45678

关于java - 将以零开头的 int 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23388915/

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