从int转换为char数组。索引不正确?

时间:2019-03-16 05:10:32

标签: java arrays

只需做一个作业并总结一下: 我需要获取一个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个? 很抱歉,如果这是一个愚蠢的问题,我已经看了这么长时间了,现在有点模糊了哈哈! 可能有更好的方法吗? 预先感谢!

1 个答案:

答案 0 :(得分:2)

您正在尝试将intchar进行比较。

您已将int转换为char的数组,因此要查看数组中第一个元素是否等于4的正确方法,需要将其设为char并放入放在这样的单引号内:

 if(idArray[0] == '4')
    {
        check = true;
        System.out.println("Id starts with 4!");
    }

谢谢!