【发布时间】:2016-01-14 14:30:31
【问题描述】:
我正在尝试将使用 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”的返回,该数字必须在最后一个数字中包含第一个数字和第二个数字的次数(什么?!)。例如,121001 将返回 true,因为 1 在最后 4 位出现 2 次。
无论如何,我的问题是即使s.charAt(x) 与a 具有相同的值,至少当我将它们打印出来并检查时(即它们都会打印9 或其他东西),我的countvariable似乎没有让步。我有数据类型不匹配吗?我能做些什么来解决这个问题?还是我完全以错误的方式解决了这个问题?
提前致谢!
【问题讨论】:
-
你想了解一下原始类型的区别。
charAt()显然返回一个 char 值......是的,可以与一个 int 数字进行比较,但究竟是什么让你认为字符“1”例如“等于”1? [提示:这不是......你想签出 ASCII、代码页等类似的东西] -
旁注
(if negative, or not 6 digits, return 'false')只需要if (numbers<100000){return false;}不需要那个计算
标签: java string casting char int