只需做一个作业并总结一下: 我需要获取一个int的用户ID,并确保第一个数字为4。
我试图通过将id(主方法中对象的int)转换为char数组来实现此目的。
我打印出索引[0]进行控制台,它显示4,很好吗?
但是我做了一个if语句,然后说如果数组的index [0]是4,那么就做某件事...它似乎并不承认索引0是4,然后继续执行else块中的操作。
public boolean checkID()
{
int convert = getId(); //get id is 44444
char[] idArray = String.valueOf(convert).toCharArray();
System.out.println(idArray[0]); // this returns a value of 4 in the console
boolean check = false;
if(idArray[0] == 4)
{
check = true;
System.out.println("Id starts with 4!");
}
else
{
check = false;
throw new IllegalArgumentException("Id does not start with 4");
}
return check;
}
}
当然在控制台中,我会收到非法的参数异常,但还会打印出4个? 很抱歉,如果这是一个愚蠢的问题,我已经看了这么长时间了,现在有点模糊了哈哈! 可能有更好的方法吗? 预先感谢!
答案 0 :(得分:2)
您正在尝试将int
与char
进行比较。
您已将int
转换为char
的数组,因此要查看数组中第一个元素是否等于4的正确方法,需要将其设为char并放入放在这样的单引号内:
if(idArray[0] == '4')
{
check = true;
System.out.println("Id starts with 4!");
}
谢谢!