Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

数组和 String 怎样获取长度?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

数组使用 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 题。

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。