String和char数组的转换总是虽然简单,但是容易出错;现整理出来,以帮助自己理清思路和想法——考虑到char[]数组没有单独的Java类,我们将从String类开始讲起
java.lang.Object
java.lang.String
public final class String extends Object implements Serializable, Comparable<String>, charSequence
Stirng()
String(byte[] bytes)
String(byte[] bytes, CharSet charSet)
String(byte[] bytes, int offset, int length)
String(byte[] bytes, int offset, int length, CharSet charSet)
String(byte[] bytes, int ofset, int length, String charSetName)
String(byte[] bytes, String charSetName)
Stirng(char[] value)
String(char[] value, in offset, int count)
String(String original)
String(StringBuffer buffer)
String(StringBuilder builder)
在以上的构造方法中,我们强调String(char[] value)
它说明我们可以通过一个char数组来构造一个新的String字符串
String str = new String(new char[]{'a,', 'b', 'c'})
在Java中char数组转换为String类型的方法有二
1)String.valueOf(char[] arr)
2)new String(char[] arr)
注意,不能直接把char数组调用toString()
方法来完成转换
char[] arr = new char[]{'a', 'e', 'i', 'o', 'u'};
String str = arr.toString();
System.out.println(str); // [C@1ee0005
而要把一个String类实例转换为char数组则要(只能)调用str.toCharArray()
方法(因为char数组没有所谓的构造方法,所以不能通过把String类型参数传递给char构造方法来构造一个新的char数组,但是String是一个类,所以可以)
public char[] toCharArray()
该方法返回一个新分配的字符数组,该数组的长度是此字符串的长度,其内容被初始化为包含这个字符串所表示的字符序列
String str = "aeiou";
char[] arr = str.toCharArray();
System.out.println(arr); // aeiou
System.out.println(arr.toString()); // [C@1ee0005