我试图将使用charAt(x)的4位数字符串与整数进行比较,以便找出字符串中有多少该整数。
public static boolean tickets(int numbers) {
int a = (numbers/100000);
int b = (numbers/10000) - a*10;
int c = numbers - a*100000 - b*10000;
int x = 0;
int count = 0;
String s = String.valueOf(c);
if (numbers/100000 == 0 || numbers/100000 > 9 ) {
return false;
}
if (numbers <= 0) {
return false;
}
while (x < 4) {
if (s.charAt(x) == a ) {
count = count + 1;
}
x = x + 1;
}
if (count == b) {
return true;
} else {
return false;
}}
我不会侮辱任何人的智慧,并说这不是一个家庭作业问题:事实确实如此。提示是输入一个数字(如果是负数,或者不是6位数,则返回&#39; false
&#39;)。要获得&#39; true
&#39;数字必须是第一个数字,第二个数字是最后一个数字的数字(什么?!)。例如,121001将返回true
,因为在最后4位数中,1次发生2次。
无论如何,我的问题是即使s.charAt(x)
与a
具有相同的价值,至少当我打印出来并检查时(即他们同时打印9&#39;我或count
变量似乎没有变化。我的数据类型不匹配吗?我该怎么做才能解决这个问题?或者我完全以错误的方式解决了这个问题?
提前致谢!
答案 0 :(得分:0)
您的数据类型不匹配。人物&#39; 0&#39;不等于整数0.一个快速修复可能是:
if (s.charAt(x) == a + '0' ) {
count = count + 1;
}
答案 1 :(得分:0)
您的if条件始终为false,因为数据类型不匹配...
尝试并将其用作if语句条件:
if(Integer.parseInt(s.charAt(x)+"") == a)
答案 2 :(得分:0)
我建议您阅读:Convert from Integer to String。
基本上,您可以创建一个名为aString
的新String变量,并将其设置为Integer.toString(a)
。