簡體   English   中英

從 String 轉換為 BigIntger 時保留前導零

[英]Retain leading zero while converting from String to BigIntger

我正在將字符串轉換為 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()BigInteger轉換為可以打印的String (因為System.out.println()將字符串作為參數)。 所以你的問題實際上是“如何在從 BigInteger 轉換為 String 時添加前導零”

要控制如何BigInteger轉換為String ,請使用DecimalFormat 假設您的號碼有 8 位數字,您可以使用:

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

注意

  • 您可以使用 long (64 位有符號整數可以表示 17 位奇數)來占用更少的空間; 在這種情況下,請使用String.format("%08d", mobileNumberLong)
  • 最好使用String而不是轉換為/從數字轉換 - 因為電話號碼具有不同的長度,並且一種格式不適合所有用例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM