A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

把字符数组转换成字符串。
static String copyValueOf(char[] chs): String s3 = String.copyValueOf(c);   返回指定数组中表示该字符序列的 String。
把字符数组转换成字符串。
//static String valueOf(char[] chs):                String sss = String.valueOf(chs);
返回 char 数组参数的字符串表示形式。字符数组的内容已被复制,后续修改不会影响新创建的字符串。

3 个回复

倒序浏览
一个可以传数组,返回数组的字符串形式,一个只能传char类型变量,将单个字符变成字符串形式,API写的很清楚,你后面的valueof参数中不能传char类型数组
回复 使用道具 举报
静态类型  String  copyValueOf(char[] data, int offset, int count)  和 copyValueOf(char[] data)
提供将字符数组转换成字符串。
而静态类型 String valueOf(基础类型 b)其中参数也可以是(char[] data)和 (char[] data, int offset, int count)  不仅可以将基础类型数据转换成字符串,
也可以将字符数组转成字符串。
应该说valueOf 包涵了copyValueOf的功能,valueOf 重载了基础类型数据的方法!
回复 使用道具 举报
本帖最后由 igi9009 于 2014-4-17 23:50 编辑

char[] test = new char[]{'a','b','c'};
  String a = String.valueOf(test);
  String b = String.copyValueOf(test);
有什么区别?答案:没有任何区别!

首先你得知道,String的底层是由char[]实现的:通过一个char[]类型的value属性!早期的String构造器的实现呢,不会拷贝数组的,直接将参数的char[]数组作为String的value属性。然后
  test[0] = 'A';
将导致字符串的变化。为了避免这个问题,提供了copyValueOf方法,每次都拷贝成新的字符数组来构造新的String对象。但是现在的String对象,在构造器中就通过拷贝新数组实现了,所以这两个方面在本质上已经没区别了。而valueof使用范围更广,boolean,char,char[] ,double,float,int,long,Object 类型的数据都能传。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马