你如何计算int中的位数?

时间:2017-02-14 19:47:31

标签: java

我一直在努力尝试找出一种方法来计算2的数字或任何数字你想要计算2的数量并在int中打印2的数量。

如果我输入一个像3552342343这样的随机数字 我在寻找3,我希望它打印4,因为它们是4 3。

1 个答案:

答案 0 :(得分:3)

您可以使用拆分查找所有匹配

String number = "128";
String digit = "2";
// expensive but simple.
int matches = number.split(digit).length - 1;

假设您想使用循环和类似包含的内容。

// no objects
char digit = '2';
int count = 0;
for (int pos = number.indexOf(digit); pos >= 0; pos = number.indexOf(digit, pos + 1)
     count++;

这会更快,但不是那么简单。

正如@Kon建议您可以迭代字符

char digit = '2';
for (char ch : number.toCharArray()) // creates an object
    if (ch == digit)
        count++;

// no objects
char digit = '2';
for (int i = 0; i < number.length(); i++)
    if (number.charAt(i) == digit)
        count++;

String有一些有趣的运行时优化,我怀疑第二种方法是最快的,但你必须测试它才能检查。