一、构造String对象
1、利用String类的构造函数
char[] charArray = {'J', 'a', 'v', 'a', ' ', 'c', 'h', 'a', 'r', 'A', 'r', 'r', 'a', 'y'}; String str = new String(charArray);
2、使用静态的valueOf() 方法
char[] charArray = {'J', 'a', 'v', 'a', ' ', 'c', 'h', 'a', 'r', 'A', 'r', 'r', 'a', 'y'}; String str = String.valueOf(charArray);
二、使用StringBuffer或StringBuilder
1、使用StringBuffer的append()方法
char[] charArray = {'J', 'a', 'v', 'a', ' ', 'c', 'h', 'a', 'r', 'A', 'r', 'r', 'a', 'y'}; StringBuffer sb = new StringBuffer(); for (char c : charArray) { sb.append(c); } String str = sb.toString();
2、使用StringBuilder的append()方法
char[] charArray = {'J', 'a', 'v', 'a', ' ', 'c', 'h', 'a', 'r', 'A', 'r', 'r', 'a', 'y'}; StringBuilder sb = new StringBuilder(); for (char c : charArray) { sb.append(c); } String str = sb.toString();
三、利用StringTokenizer类
1、使用StringTokenizer的StringTokenizer(char[] chars, String delimiter)构造函数
char[] charArray = {'J', 'a', 'v', 'a', ' ', 'c', 'h', 'a', 'r', 'A', 'r', 'r', 'a', 'y'}; StringTokenizer st = new StringTokenizer(new String(charArray), ""); String str = ""; while (st.hasMoreTokens()) { str += st.nextToken(); }
2、使用StringTokenizer的StringTokenizer(String str, String delimiter)构造函数
char[] charArray = {'J', 'a', 'v', 'a', ' ', 'c', 'h', 'a', 'r', 'A', 'r', 'r', 'a', 'y'}; String str = String.valueOf(charArray); StringTokenizer st = new StringTokenizer(str, ""); StringBuilder sb = new StringBuilder(); while (st.hasMoreTokens()) { sb.append(st.nextToken()); } str = sb.toString();
四、性能对比
在使用上述方法将char数组转化为String类型时,一定要注意它们的性能问题。String类的构造函数及valueOf()方法的性能较差,不适宜处理大量的数据;StringBuffer和StringBuilder比较适合处理大量的数据,但是前者是线程安全而后者不是。因此,在处理大量数据时,建议使用StringBuilder类。
五、小结
本文从多个方面介绍了Java中将char数组转化为String类型的几种方法,包括利用String类的构造函数、使用StringBuffer或StringBuilder和利用StringTokenizer类。相比而言,StringBuffer和StringBuilder是性能比较好的选择。但是,在使用这些方法时一定要注意它们的使用场景和线程安全问题。