как посчитать количество цифр телефонных номеров? - PullRequest
0 голосов
/ 04 мая 2020

просто для обычных номеров, но телефонные номера могут начинаться с 01 -...., например, 01234 - это в основном 1234 для java, верно?

Так что я не могу разделить на 10 Рекурсивно выяснить, сколько цифр. Есть ли другой способ узнать, сколько цифр есть?

заранее спасибо. пс .: без регулярных выражений, если это возможно

Ответы [ 5 ]

2 голосов
/ 04 мая 2020

Предположим, что телефонный номер является строкой,

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

, тогда вы можете выполнить итерацию в этой строке и проверить, действительно ли символ является числом

int count = 0;
for(char c : pn.toCharArray()){
  if(Character.isDigit(c))
    count++;
}
0 голосов
/ 04 мая 2020

Если вы говорите о числе, представленном объектом 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;
}

Если вы говорите о числе, представленном целым числом, просто конвертируйте его в строку, прежде чем использовать его следующим образом. :

String phoneNumber = String.valueOf(phoneNumberInInt);  

Я предположил, что вы действительно хотите считать нули как ди git, потому что вы не суммируете их значение, поэтому они имеют значение, когда вы говорите о том, сколько цифр там ,

0 голосов
/ 04 мая 2020

это легко сделать с помощью лямбды

"049-4912394129".codePoints().filter( Character::isDigit ).count();  // 13
0 голосов
/ 04 мая 2020

Поскольку ваш телефонный номер является целым числом, вам не нужно беспокоиться о регулярных выражениях и шаблонах телефонных номеров каждой локали.

Просто преобразуйте свой int номер телефона в строку. Тогда вы можете легко получить длину строки.

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

int length = myStringNumber.length();
0 голосов
/ 04 мая 2020

Вы хотите, чтобы ваш номер телефона был String. Это не число в том смысле, что вы делаете с ним вычисления. Это код для определения устройства, которое вы хотите вызвать, например, имя.

Тогда вы можете просто:

class Scratch {
    public static void main(String[] args) {
        String phoneNumber = "791555572";
        int length = phoneNumber.length();
        System.out.println(length); // 9
    }
}
...