杰瑞科技汇

Java获取String长度有几种方法?

在 Java 中获取 String 的长度非常简单,主要使用 String 类自带的 length() 方法。

核心方法:length()

length() 方法返回 String 对象中包含的字符数量(Unicode 代码单元的数量)。

语法

int length = yourString.length();

示例代码

public class StringLengthExample {
    public static void main(String[] args) {
        String str1 = "Hello, World!";
        String str2 = "Java";
        String str3 = ""; // 空字符串
        String str4 = "你好,世界"; // 中文
        // 获取并打印字符串长度
        System.out.println("字符串 \"" + str1 + "\" 的长度是: " + str1.length()); // 输出: 13
        System.out.println("字符串 \"" + str2 + "\" 的长度是: " + str2.length()); // 输出: 4
        System.out.println("字符串 \"" + str3 + "\" 的长度是: " + str3.length()); // 输出: 0
        System.out.println("字符串 \"" + str4 + "\" 的长度是: " + str4.length()); // 输出: 6
    }
}

重要注意事项

length() 是方法,不是属性

与许多其他语言(如 Python 的 len() 或 C# 的 string.Length)不同,Java 中 length 是一个方法,需要加上括号 来调用。

错误示例:

// 错误!String 没有 length 属性
int len = "hello".length; 

正确示例:

// 正确!length() 是一个方法
int len = "hello".length();

length()length 的区别

初学者很容易混淆 String.length() 和数组的 .length 属性。

特性 String.length() 数组 .length
类型 方法 (Method) 属性 / 字段 (Field)
调用方式 需要括号 直接使用,无需括号
作用 获取字符串中的字符数 获取数组中的元素个数
示例 "abc".length() 返回 3 new int[5].length 返回 5

Unicode 和代码单元 (Code Units)

在 Java 中,String 是由 char 值序列组成的,每个 char 是一个 16 位的 Unicode 代码单元。

  • 对于大多数常见的字符(如英文字母、数字、欧洲语言的字母),一个字符对应一个 charlength() 的结果就是直观的字符数。
  • 对于一些辅助字符(如某些 Emoji 或特殊符号),它们需要两个 char 来表示(一个代理对,surrogate pair),在这种情况下,length() 返回的值会大于你直观看到的字符数。

示例:Emoji 字符

// 一个Emoji字符 "😂" 实际上由两个char组成
String emojiString = "😂";
System.out.println("字符串 \"" + emojiString + "\" 的长度是: " + emojiString.length()); // 输出: 2
// 如果你想要计算真正的字符数(而不是代码单元数),应该使用 codePointCount()
int trueLength = emojiString.codePointCount(0, emojiString.length());
System.out.println("字符串 \"" + emojiString + "\" 的真实字符数是: " + trueLength); // 输出: 1

null 字符串

如果尝试对一个 null 对象调用 length() 方法,会抛出 NullPointerException

String nullString = null;
// 这行代码会抛出 java.lang.NullPointerException
// int len = nullString.length(); 

为了避免这种情况,最好在调用前进行判断:

String nullString = null;
if (nullString != null) {
    System.out.println("长度是: " + nullString.length());
} else {
    System.out.println("字符串对象为 null,无法获取长度。");
}

需求 推荐方法 说明
获取字符串的字符数(标准) myString.length() 最常用,返回代码单元数,适用于绝大多数情况。
获取字符串的真实字符数 myString.codePointCount(0, myString.length()) 正确处理代理对(如 Emoji),返回真正的 Unicode 字符数。
获取数组的长度 myArray.length 注意,这是数组的属性,不是方法。
安全地获取长度(防 null) if (myString != null) { ... } 在调用前进行空指针检查。

对于日常开发,myString.length() 是获取字符串长度的标准、最简单也是最常用的方法。

分享:
扫描分享到社交APP
上一篇
下一篇