【发布时间】:2017-02-14 19:47:30
【问题描述】:
我一直在努力尝试找出一种方法来计算 2 的数量或您想要找出一种方法来计算 2 的数量并在 int 中打印 2 的数量。
如果我输入一个随机数,例如 3552342343 我在寻找 3,我希望它打印 4,因为它们是 4 个 3。
【问题讨论】:
-
不清楚你在问什么。您列出的代码无法编译,因此我们无法推测运行时错误是什么。请发布一个完整的问题并详细说明您收到的错误。
标签: java
我一直在努力尝试找出一种方法来计算 2 的数量或您想要找出一种方法来计算 2 的数量并在 int 中打印 2 的数量。
如果我输入一个随机数,例如 3552342343 我在寻找 3,我希望它打印 4,因为它们是 4 个 3。
【问题讨论】:
标签: java
您可以使用 split 查找所有匹配项
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 有一些有趣的运行时优化,我怀疑第二种方法最快,但您必须对其进行测试才能检查。
【讨论】:
char[] 表示的字符并查找 '2' 或任何其他整数,必须更快且更易于理解。