数组和 String 怎样获取长度?
查看完整题解
参考回答
直接回答
数组使用 length 字段,例如 values.length;String 使用 length() 方法,例如 text.length()。数组没有 length() 方法。集合通常使用 size(),不要把这几种写法混为一谈。
讲清原理
数组创建后长度固定,length 是它的公开 final 字段;字段固定不等于元素不可修改。String 的 length() 返回 UTF-16 代码单元数量,不总是人眼看到的字符数量。
二维数组本质上是元素为数组的数组,各行长度可以不同。因此 matrix.length 是行数组的元素个数,matrix[0].length 才是第一行长度;第一行若为 null,访问它的 length 还会抛空指针异常。
例子与易错点
int[] values = {1, 2, 3};
String text = "😀";
System.out.println(values.length); // 3
System.out.println(text.length()); // 2
System.out.println(text.codePointCount(0, text.length())); // 1
码点数也未必等于可见字形数。用户昵称等面向人的长度限制,应先明确要数代码单元、码点还是字素簇。
相关题:第 20 题、第 38 题、第 47 题。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。