簡體   English   中英

如何計算電話號碼的位數?

[英]how count the number of digits of telephone numbers?

對於普通號碼來說很容易,但電話號碼可以以 01-.... 開頭,例如,對於 java,01234 基本上是 1234,對吧?

所以我不能遞歸地除以 10 來找出有多少位數。 有什么不同的方法可以找出有多少位數?

提前致謝。 ps.:如果可能,不要使用正則表達式

假設電話號碼是一個字符串,

String pn = "049-4912394129" // that's a random value

然后你可以迭代那個字符串並檢查一個字符是否確實是一個數字

int count = 0;
for(char c : pn.toCharArray()){
  if(Character.isDigit(c))
    count++;
}

由於您的電話號碼是一個整數,因此您無需為正則表達式和每個區域設置電話號碼模式而煩惱。

只需將您的int電話號碼轉換為字符串。 然后你可以很容易地得到字符串的長度。

int myIntNumber = 1234;
String myStringNumber = String.valueOf(myIntNumber);

int length = myStringNumber.length();

這可以通過 lambda 輕松完成

"049-4912394129".codePoints().filter( Character::isDigit ).count();  // 13

如果您正在談論由字符串 object 表示的數字,那么:

public int getNumberOfDigits(phoneNumber) {
   int count = 0;
   for (int i = 0, i < phoneNumber.length(); i++) {
       if (Character.isDigit(phoneNumber.charAt(i))) {
           count++;
       }
   }
   System.out.println("Number of digits: " + count);
   return count;
}

如果您正在談論一個由 int 表示的數字,那么只需在使用它之前將其轉換為 String,如下所示:

String phoneNumber = String.valueOf(phoneNumberInInt);  

我假設您確實想將零視為一個數字,因為您沒有總結它們的值,因此當您談論那里有多少個數字時,它們確實有意義。

暫無
暫無

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

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