2017-02-14 68 views
-3

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

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

+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++; 

字符串有一些有趣的运行的优化,我怀疑第二种方法是最快的,但你必须考它来检查。

+1

我很喜欢这种方法,但这有点矫枉过正,对吧?遍历字符串的'char []'表示的字符并寻找“2”或任何其他整数,必须更快,更容易理解。 – Kon

+1

谢谢你,这正是我要求你的答案。 –

+0

如果数字是负数怎么办? – nasukkin