【问题标题】:Length of byte[] arraybyte[] 数组的长度
【发布时间】:2014-03-12 15:49:34
【问题描述】:
String str = "123456789";
byte[] bytes = str.getBytes();

我想做下面的循环

for (int j = 0; j < bytes.length(); j++) {
  b = bytes[j];
}

b 将存储我数组的每个字节,但我似乎无法正确获取数组的长度。

Error:cannot find symbol
Problem solved:  bytes.length instead of  bytes.length()

【问题讨论】:

  • “似乎无法正确获取数组的长度”是什么意思?
  • 为什么不呢?你得到什么错误?
  • Netbeans 显示错误“找不到符号”。
  • 你认为为什么会这样?你收到错误了吗? (您应该使用bytes.length 而不是bytes.length()。)
  • -1 不包括确切的编译器错误消息。

标签: java arrays byte


【解决方案1】:

使用bytes.length 而不使用()

【讨论】:

  • @user3383062 太棒了,您能否为答案投票并将其标记为正确?谢谢。
【解决方案2】:

JLS - 10.7. Array Members

数组类型的成员都有以下几种:

public final field length,其中包含组件的数量 的数组。长度可以是正数或零。

length 是一个属性,而不是一个方法。你应该写:

bytes.length

【讨论】:

    【解决方案3】:

    要获取数组的长度,请使用length。例如:

    int[] arr = {1,2,3};
    int length = arr.length;
    

    要获取字符串的长度,请使用length()。例如:

    String str = "123";
    int length = str.length();
    

    【讨论】:

      【解决方案4】:

      不是bytes.length(),是bytes.length

      【讨论】:

        【解决方案5】:

        getBytes() 使用平台的默认字符集将字符串编码为字节序列,将结果存储到新的字节数组中。

        尝试打印字节,您将看到与原始字符串相比长度可能不同的编码值。

        【讨论】:

          猜你喜欢
          • 2015-04-18
          • 1970-01-01
          • 1970-01-01
          • 2012-08-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-27
          • 1970-01-01
          相关资源
          最近更新 更多