【问题标题】:How to find the length of an integer in an array如何找到数组中整数的长度
【发布时间】:2015-03-15 23:52:22
【问题描述】:

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

String.valueOf(array[arrayValue])

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

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

但是它说由于某种原因我不能使用“

【问题讨论】:

  • 如何定义整数长度
  • array的类型是什么?
  • 也许你想用array[arrayValue].length
  • 正如标题所说,它是一个int数组。另外,我所说的整数长度的意思是,例如整数:123 的值为 123,但长度为三位数。我想在 if 语句中使用它。
  • @Kousha 你确定这样可以吗?

标签: java arrays string if-statement int


【解决方案1】:

你想要的是

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

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

您当前的代码从数组中获取arrayValueth 元素,将其与4 进行比较,然后将truefalse 的比较结果转换为字符串:"true" 或@987654330 @。然后它试图将String 传递给if 子句,该子句只接受布尔值,因此会引发错误。

【讨论】:

    【解决方案2】:

    代码没有被编译的原因已经被k_g指出了。
    但是,您的声明

    它说由于某种原因我不能使用“

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

    获取整数的“长度”

    要计算整数的长度(我更喜欢说“宽度”),有两种方法:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-05-04
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 2020-07-27
      • 2021-10-26
      • 1970-01-01
      • 2013-06-05
      相关资源
      最近更新 更多