我想比较一个4位字符串使用charAt(x)到一个整数,以便找出该字符串中有多少个整数。在字符串中搜索整数。数据类型不匹配?
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位数字,则返回'false
')。为了得到'true
'的回报,该号码必须具有第一位数字和第二位数字的最后一位数字(什么?!)。例如,121001将返回true
,因为在最后4位数字中有1次2次。
不管怎么说,我的问题是,即使s.charAt(x)
将具有相同的价值a
,至少当我打印出来,并检查(它们都打印的9或东西即会),我count
变量似乎并没有让步。我有一个数据类型不匹配?我能做些什么来解决这个问题?还是我完全用错误的方式来解决这个问题?
提前致谢!
你想了解一些基本类型的差异。 'charAt()'显然返回一个char值......这是可以与int数相比较的,但是究竟是什么让你认为例如字符“1”等于1? [提示:不是...你想签出像ASCII,代码页等所有东西] – GhostCat
备注'(如果为负数,或不是6位数,则返回'false')'只需要'if(numbers <100000){return false;}'不需要计算 –