在字符串中搜索整数。数据类型不匹配?

Searching a String for an integer. Datatype mismatch?

我正在尝试使用 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位,return 'false')。要获得 'true' 的 return,该数字必须有第一个数字和第二个数字在最后一个数字中的次数(什么?!)。例如,121001 将 return true 因为 1 在最后 4 位数字中出现了 2 次。

无论如何,我的问题是即使 s.charAt(x)a 具有相同的值,至少当我将它们打印出来并检查时(即它们都会打印 9 或其他内容) ,我的 count 变量似乎没有变化。我的数据类型不匹配吗?我该怎么做才能解决这个问题?还是我完全以错误的方式解决了这个问题?

提前致谢!

您的数据类型不匹配。字符“0”不等于整数 0。一个快速修复可能是:

if (s.charAt(x) == a + '0' ) {
    count = count + 1;
}

你的if条件总是假的,因为数据类型不匹配...

尝试将其用作您的 if 语句条件:

 if(Integer.parseInt(s.charAt(x)+"") == a)

我建议通读一下:Convert from Integer to String

基本上,您可以创建一个名为 aString 的新字符串变量并将其设置为 Integer.toString(a)