如何在数组中查找整数的长度

时间:2015-03-15 23:52:22

标签: java arrays string if-statement int

我希望能够在数组中找到某个值的长度。我试过了:

String.valueOf(array[arrayValue])

但是我无法看到它是否< if语句中的某个数字。例如,我想看看手头某个值的长度是否小于4。我现在有这样的事情:

if(String.valueOf(array[arrayValue] < 4)){
    //does something
}

然而它说我不能使用&#34;&lt;&#34;因某种原因签字。有谁知道我怎么能成功做到这一点?

2 个答案:

答案 0 :(得分:2)

你想要的是

if(Integer.toString(array[arrayValue]).length()>4)

这会从您的数组中获取arrayValue元素,将其转换为String,找到长度,然后将其与4进行比较。

您当前的代码是从您的数组中获取arrayValue元素,将其与4进行比较,然后将比较结果truefalse转换为字符串:"true""false"。然后尝试将String传递给if子句,该子句只接受布尔值,因此抛出错误。

答案 1 :(得分:0)

k_g已经指出了代码未编译的原因 但是,你的陈述

  

它说我不能使用&#34;&lt;&#34;因某种原因签名

并非完全正确:String.valueOf(array[arrayValue] < 4)完全有效,但它返回一个字符串,并且不能作为if语句中的条件。

获得&#39;长度&#39;整数

要计算长度 - 我更喜欢说&#39;宽度&#39; - 整数,有两种方法:

  • 有人可能希望将整数转换为字符串并获取字符串的长度,请参阅k_g的答案,但转换为字符串是昂贵的
  • 更好的方法可能是这样的:
    将给定值重复除以10,直到它低于1:

    public static int getWidth(int value) {
        int i = 0;
        while (value > 0) {
            value /= 10;
            i++;
        }
        return i;
    }
    

    它避免了字符串到字符串的转换,使其大约快5.6倍