Java 如何计算电话号码的位数?
对于普通号码来说很容易,但电话号码可以以01-..开头,例如01234 基本上是1234 for java,对吗 所以我不能递归地除以10来找出有多少个数字。 有什么不同的方法来确定有多少个数字吗 提前谢谢。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
注:如果可能,没有正则表达式假定电话号码是字符串
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);