在这小节中将学习如何将String
转换为char
数组,然后将char
数组转换为Java中的String
。
1. 字符串转为char数组
Java String是一个字符流。String
类提供了一个实用程序方法,用于将String
转换为char
数组。下面通过一个简单的程序来演示如何操作。
import java.util.Arrays; public class StringToCharArray { public static void main(String[] args) { String str = "example.com"; char[] charArr = str.toCharArray(); // print the char[] elements System.out.println("String converted to char array: " + Arrays.toString(charArr)); } }
执行上面示例代码,得到以下结果 -
String converted to char array: [y, i, i, b, a, i, ., c, o, m]
String.toCharArray
内部使用System
类arraycopy
方法。可以从下面的方法实现中看到。
public char[] toCharArray() { char result[] = new char[value.length]; System.arraycopy(value, 0, result, 0, value.length); return result; }
注意,上面是使用Arrays.toString
方法来打印char
数组。Arrays
是java中的实用程序类,它提供了许多有用的方法来处理数组。例如,可以使用Arrays
类来搜索,排序和复制数组操作。
2. char数组转为String
下面通过一个简单的程序,将char
数组转换为String
。
import java.util.Arrays; public class CharArrayToString { public static void main(String[] args) { char[] charArray = { 'K', 'A', 'O', 'P', 'S', '.', 'C', 'O', 'M' }; String str = new String(charArray); System.out.println(str); } }
执行上面示例代码,得到以下结果 -
KAOPS.COM
使用String
类构造函数,它将char
数组作为参数来创建一个String
。但是,如果看一下这个构造函数实现,它会在内部使用Arrays.copyOf
方法。
public String(char value[]) { this.value = Arrays.copyOf(value, value.length); }
Arrays.copyOf
方法在内部再次使用System.arraycopy
方法。
public static char[] copyOf(char[] original, int newLength) { char[] copy = new char[newLength]; System.arraycopy(original, 0, copy, 0,Math.min(original.length, newLength)); return copy; }
因此,可以清楚地看到System.arraycopy()
是在字符串中使用char
数组并将char
数组转为String操作的方法。这里就是将String转换为char
数组,以及将char
数组转换为String
示例程序的全部内容。