如何计算电话号码的位数?

问题描述 投票:0回答:2

一般的数字很容易,但电话号码可以从01-......开始,例如,01234基本上是1234的java,对吗?

所以我不能用递归的方式除以10来求出电话号码的位数.有什么不同的方法来求出电话号码的位数吗?

thanks in advance.ps.: no regex if possible!

java count numbers digits
2个回答
2
投票

假设电话号码是一个字符串。

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

然后你可以在该字符串中迭代,检查一个字符是否确实是一个数字。

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

0
投票

由于您的电话号码是一个int,您不需要为regex和每个地区的电话号码模式而烦恼。

只需将你的 int电话号码变成一个字符串。然后你可以很容易地得到字符串的长度。

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

int length = myStringNumber.length();

0
投票

如果你说的是一个用String对象表示的数字,那么。

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);  

我假设你想把0算作一个数字 因为你不是在总结它们的值, 所以当你谈论有多少个数字时, 它们是有意义的.


0
投票

这可以很容易地用一个lambda来实现

"049-4912394129".codePoints().filter( Character::isDigit ).count();  // 13
© www.soinside.com 2019 - 2024. All rights reserved.