如何找到数组中整数的长度

How to find the length of an integer in an array

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

String.valueOf(array[arrayValue])

但我无法在 if 语句中查看它是否 < 某个数字。例如我想看看手头的某个值的长度是否小于四。我现在有这样的东西:

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

但是它说出于某种原因我不能使用“<”符号。有谁知道我如何才能成功做到这一点?

你要的是

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

这从您的数组中获取第 arrayValue 个元素,将其转换为 String,找到长度,然后将其与 4.

进行比较

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

代码未编译的原因k_g已经指出了。
然而,你的声明

it says that I cannot use the "<" sign for some reason

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

获取整数的'length'

要计算整数的长度——我更喜欢说'width'——有两种方法:

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

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

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