如何找到数组中整数的长度
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
进行比较,然后将比较结果转换为 true
或 false
到字符串:"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 倍。
我希望能够找到数组中某个值的长度。我试过:
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
进行比较,然后将比较结果转换为 true
或 false
到字符串:"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 倍。