2015-03-21 3 views
-3

Этот вопрос включает числа с ведущими нулями и числами, которые обычно считаются шестнадцатеричными (например, 09). Ввод пользователя является целым числом, потому что я передаю число некоторой функции как целое.Как получить число цифр в целых числах с ведущими нулями в java?

Например

  • , если пользователь вводит 5 я должен получить 1
  • , если пользователь вводит 0005 я должен получить 4
  • , если пользователь вводит 09 я должен получить 2

(Примечание) Ниже метода не работает:

String.valueOf(integer).length() 
+3

'String.length()'? – nhgrif

ответ

1

Пользовательский ввод, вероятно, будет уже String, поэтому вы можете просто использовать String.length(). Например:

public static void main(String... args) { 
    Scanner in = new Scanner(System.in); 
    String number = in.next(); 
    int numDigits = number.length(); 
    System.out.println(numDigits); 
} 

Если входной сигнал был целым числом, он не мог иметь начальные нули. Если исходный вход имел нули, и вы в какой-то момент преобразовали его в целое число, вы потеряли эту информацию.

+0

Я отредактировал мой вопрос. Введите ввод как целое. – Wardruna

+0

Если вход был целым числом, он не мог иметь начальные нули. Если исходный вход имел нули, и вы в какой-то момент преобразовали его в целое число, вы потеряли эту информацию. –

+2

Да, вопрос, как написано, теперь искажен. Ведущие нули являются лишь характеристикой строк. –

1

Это работает только в том случае, если число, которое вы хотите, является строкой. У вас нет 0005 целых чисел, если оно не является целым числом, вместо этого оно является строкой. Вы должны сохранить эти числа как строку, а не int, чтобы это работало. Затем вы можете использовать метод .length()

Смежные вопросы