Java 从字符串转换为biginger时保留前导零

Java 从字符串转换为biginger时保留前导零,java,Java,我正在为mobileNumber将字符串转换为整数。 手机号码在转换为BigInteger时前导零。代码正在从字符串中删除前导零。 我想保留前导零。有谁能告诉我实现这一目标的方法吗。下面是我的代码 public class MobileNumberStringToInteger { public static void main(String[] args) { String mobileNumber = "08305327";

我正在为mobileNumber将字符串转换为整数。 手机号码在转换为BigInteger时前导零。代码正在从字符串中删除前导零。 我想保留前导零。有谁能告诉我实现这一目标的方法吗。下面是我的代码

public class MobileNumberStringToInteger {

    public static void main(String[] args) {
        String mobileNumber = "08305327";
    
        BigInteger mobileNumberBigInt= new BigInteger(mobileNumber );
 
    System.out.println("mobile number in string to mobileNumberBigIntger--"+mobileNumberBigInt);
    




    }

}

数字的内部表示应该不重要(但计算机通常使用基于二进制的表示,而不是以10为基数)。当你写作时

    System.out.println("mobileNumberBigIntger " + mobileNumberBigInt);
+
符号实际上使用默认的
toString()
biginger
转换为可以打印的
字符串(因为
System.out.println()
将字符串作为参数)。因此,您的问题实际上是“如何在从BigInteger转换为String时添加前导零”

要控制如何将
大整数
转换为
字符串
,请使用。假设您的数字有8位,您可以使用:

DecimalFormat fmt = new DecimalFormat("00000000"); // 8 zeroes
System.out.println("mobileNumberBigIntger " + fmt.format(mobileNumberBigInt));
注意

  • 您可以使用一个长的(64位有符号整数可以代表17个奇数)来占用更少的空间;在这种情况下,请使用
    String.format(“%08d”,mobileNumberLong)
    格式化
  • 最好使用
    String
    而不是转换成/转换成数字-因为电话号码有不同的长度,并且一种格式不适合所有用例

您不能-因为
biginger
只表示数字本身,前导零与数值无关。为什么要将电话号码从字符串转换为大整数?手机号码在国家/地区为零。若不存在零,则不会向客户发送sms。您不应使用数字类型作为电话号码。它们仅由指示性数据组成,而不是数值,前导零和各种元数据字符非常重要。