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

时间:2015-10-15 23:39:33

标签: java string casting char int

我试图将使用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变量似乎没有变化。我的数据类型不匹配吗?我该怎么做才能解决这个问题?或者我完全以错误的方式解决了这个问题?

提前致谢!

3 个答案:

答案 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)