-3

这个问题包括带前导零的数字和通常计为十六进制的数字(如 09)。假设用户输入是整数,因为我将数字作为整数传递给某些函数。

例如

  • 如果用户输入 5 我应该得到 1
  • 如果用户输入 0005 我应该得到 4
  • 如果用户输入 09 我应该得到 2

(注)以下方法无效:

String.valueOf(integer).length()
4

2 回答 2

1

这仅在您想要的数字是字符串时才有效。你没有 0005 整数,除非它不是一个整数,而是一个字符串。您必须将这些数字保存为 String 而不是 int 才能正常工作。然后你可以使用.length()方法

于 2015-03-21T18:36:44.780 回答
1

用户输入可能String已经是 a,因此您可以使用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);
}

如果输入是整数,则不能有前导零。如果初始输入为零并且您在某个时候将其转换为整数,则您会丢失此信息。

于 2015-03-21T18:25:50.070 回答