Java如何将字符串转换为字符数组?

22-09-18 banq

java string toCharArray()方法将此字符串转换为字符数组。它返回一个新创建的字符数组,它的长度和这个字符串相似,它的内容用这个字符串的字符初始化。返回一个新分配的字符数组,其长度为该字符串的长度,其内容被初始化为包含该字符串表示的字符序列。

public class StringToCharArrayExample {
 public static void main(String[] args) {

   String input = "java-jdon";
  char[] chars = input.toCharArray();
  for (int i = 0; i < input.length(); i++) {
   System.out.print(chars[i] +" ");
  }
  
 }
}


toCharArray 内部实现:
这将检查字符串是否包含拉丁字符或 UTF16 字符。

public char[] toCharArray() {
        return isLatin1() ? StringLatin1.toChars(value) : StringUTF16.toChars(value);
        }


如果字符串是拉丁语,则调用StringLatin1.toChars

   public static char[] toChars(byte[] value) {
        char[] dst = new char[value.length];
        inflate(value, 0, dst, 0, value.length);
        return dst;
    }


如果字符串是拉丁语,则调用StringUTF16.toChars并调用getChars()方法。

public static char[] toChars(byte[] value) {
        char[] dst = new char[value.length >> 1];
        getChars(value, 0, dst.length, dst, 0);
        return dst;
    }