繁体   English   中英

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

[英]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位数字,则返回' false ')。 要获得“ true ”的返回true ,数字必须具有第一个数字,第二个数字在最后一个数字的位数(是什么?!)。 例如,由于最后4位数字中有1次出现2次,因此121001将返回true

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

提前致谢!

您的数据类型不匹配。 字符“ 0”不等于整数0。一种快速的解决方法是:

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

您的if条件始终为false,因为数据类型不匹配...

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

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

我建议阅读以下内容: 从Integer转换为String

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM