string.copyvalueof()是java中将char[]转为字符串的静态方法,提供全量转换和部分转换两种重载形式,要求offset和count满足索引约束,传null会抛nullpointerexception。

String.copyValueOf() 是 Java 中将字符数组(char[])快速转为字符串的静态方法,本质是创建新字符串对象,内容来自原数组的副本。
copyValueOf 的两种重载形式
它有两个常用重载版本,适用于不同场景:
-
全量转换:
String.copyValueOf(char[] data)—— 直接把整个字符数组转成字符串 -
部分转换:
String.copyValueOf(char[] data, int offset, int count)—— 从指定位置开始,取指定长度的子序列转字符串
基本用法示例
比如有字符数组 char[] chars = {'H', 'e', 'l', 'l', 'o'};:
Java Linux版下载入口,提供 Oracle JDK 26.0.2 官方 Linux 安装包、Java 环境配置、JDBC 数据库连接和 Java 服务端开发相关信息。
-
String s1 = String.copyValueOf(chars);→ 得到"Hello" -
String s2 = String.copyValueOf(chars, 1, 3);→ 从索引 1 开始取 3 个字符,结果是"ell"
注意:offset 和 count 要满足 0 ≤ offset ≤ offset + count ≤ data.length,否则抛 IndexOutOfBoundsException。
和 new String(char[]) 的区别
两者效果相似,但语义略有不同:
-
String.copyValueOf()更强调“值复制”,名字本身即提示这是基于数组内容构造新字符串 -
new String(char[])是构造器调用,底层也做了数组拷贝(避免外部修改影响字符串不可变性) - 实际性能和行为几乎一致,选哪个主要看代码可读性和团队习惯
使用时要注意的点
虽然简单,但容易忽略细节:
- 传入的
char[]可以为null,但会直接抛NullPointerException - 该方法不处理编码问题(字符数组本身已是 Unicode 码元,无需编码解码)
- 生成的字符串是不可变的,后续修改数组不影响已创建的字符串
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










