Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何计算电话号码的位数?_Java_Count_Numbers_Digits - Fatal编程技术网

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

Java 如何计算电话号码的位数?,java,count,numbers,digits,Java,Count,Numbers,Digits,对于普通号码来说很容易,但电话号码可以以01-..开头,例如01234 基本上是1234 for java,对吗 所以我不能递归地除以10来找出有多少个数字。 有什么不同的方法来确定有多少个数字吗 提前谢谢。 注:如果可能,没有正则表达式假定电话号码是字符串 String pn = "049-4912394129" // that's a random value 然后您可以在该字符串中进行迭代,并检查一个字符是否确实是一个数字 int count = 0; for(char c : pn.t

对于普通号码来说很容易,但电话号码可以以01-..开头,例如01234 基本上是1234 for java,对吗

所以我不能递归地除以10来找出有多少个数字。 有什么不同的方法来确定有多少个数字吗

提前谢谢。
注:如果可能,没有正则表达式假定电话号码是字符串

String pn = "049-4912394129" // that's a random value
然后您可以在该字符串中进行迭代,并检查一个字符是否确实是一个数字

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

因为您的电话号码是一个int,所以不需要使用regex和每个地区的电话号码模式

只需将您的
int
电话号码转换为字符串即可。然后你可以很容易地得到字符串的长度

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

int length = myStringNumber.length();
这可以很容易地用lambda完成


如果您谈论的是由字符串对象表示的数字,则:

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

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

将电话号码作为
字符串
?您到目前为止已经尝试了什么?@jhamon我把它作为一个int来获取。什么阻止您将int转换为字符串?如果您将
012345
作为int来接收,那么您对此无能为力,它将被表示为
12345
,您不知道开头是否有
0
。@AndyTurner,我没有收到您的评论。OP想知道他的数字中的数字,以知道是否缺少前导零。可能要稍后执行零填充或:
pn.codePoints().filter(Character::isDigit.count()
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;
}
String phoneNumber = String.valueOf(phoneNumberInInt);