我希望能够在数组中找到某个值的长度。我试过了:
String.valueOf(array[arrayValue])
但是我无法看到它是否< if语句中的某个数字。例如,我想看看手头某个值的长度是否小于4。我现在有这样的事情:
if(String.valueOf(array[arrayValue] < 4)){
//does something
}
然而它说我不能使用&#34;&lt;&#34;因某种原因签字。有谁知道我怎么能成功做到这一点?
答案 0 :(得分:2)
你想要的是
if(Integer.toString(array[arrayValue]).length()>4)
这会从您的数组中获取arrayValue
元素,将其转换为String
,找到长度,然后将其与4
进行比较。
您当前的代码是从您的数组中获取arrayValue
元素,将其与4
进行比较,然后将比较结果true
或false
转换为字符串:"true"
或"false"
。然后尝试将String
传递给if
子句,该子句只接受布尔值,因此抛出错误。
答案 1 :(得分:0)
k_g已经指出了代码未编译的原因 但是,你的陈述
它说我不能使用&#34;&lt;&#34;因某种原因签名
并非完全正确:String.valueOf(array[arrayValue] < 4)
完全有效,但它返回一个字符串,并且不能作为if语句中的条件。
要计算长度 - 我更喜欢说&#39;宽度&#39; - 整数,有两种方法:
更好的方法可能是这样的:
将给定值重复除以10,直到它低于1:
public static int getWidth(int value) {
int i = 0;
while (value > 0) {
value /= 10;
i++;
}
return i;
}
它避免了字符串到字符串的转换,使其大约快5.6倍。