byte[]数组的长度是多少?

30
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()

1
“can't seem to get the length of the array correctly” 是什么意思? - user473973
为什么不行?你遇到了什么错误? - user1907906
为什么你认为会出现这种情况?你收到了错误吗?(你应该使用 bytes.length 而不是 bytes.length()。) - Gábor Bakos
2
只返回翻译的文本:如果没有包含确切的编译器错误消息,则返回-1。 - Hot Licks
它要求我在执行此操作之前等待10分钟。 - user3383062
显示剩余3条评论
6个回答

81

使用bytes.length而不是bytes.length()


1
@user3383062 太棒了,您可以给这个答案点赞并标记为正确吗?谢谢。 - Brian

10

请参见JLS - 10.7.数组成员

数组类型的成员包括以下所有内容:

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

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

bytes.length

2
为获取数组长度,请使用 length。例如:
int[] arr = {1,2,3};
int length = arr.length;

为了获取字符串的长度,请使用 length()。例如:
String str = "123";
int length = str.length();

0

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


0

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

尝试打印这些字节,您会看到编码后的值可能与原始字符串长度不同。


0
我赞同Sabuj的评论。应该是bytes.length

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接