在字符串中搜索整数。数据类型不匹配?
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)
。
我正在尝试使用 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)
。