在Java中将字符串转换为char数组,将char数组转换为String

时间:2020-02-23 14:37:27  来源:igfitidea点击:

今天,我们将学习如何在Java中将String转换为char数组,然后将char数组转换为String。

字符串到char数组

Java String是字符流。
String类提供了一种实用程序方法,可以将String转换为Java中的char数组。
让我们用一个简单的程序来看一下。

package com.theitroad.util;

import java.util.Arrays;

public class StringToCharArray {

	public static void main(String[] args) {
		String str = "theitroad.local";
		char[] charArr = str.toCharArray();
		//print the char[] elements
		System.out.println("String converted to char array: " 
							+ Arrays.toString(charArr));
	}
}

下图显示了以上程序产生的输出。

String.toCharArray在内部使用系统类arraycopy方法。
您可以从下面的方法实现中看到这一点。

public char[] toCharArray() {
      char result[] = new char[value.length];
      System.arraycopy(value, 0, result, 0, value.length);
      return result;
  }

注意使用了Arrays.toString方法来打印char数组。
数组是Java中的实用程序类,它提供了许多有用的方法来处理数组。
例如,我们可以使用Arrays类来搜索,排序和Java复制数组操作。

char数组转换为String

让我们看一个简单的程序,用Java将char数组转换为String。

package com.theitroad.util;

public class CharArrayToString {

	public static void main(String[] args) {
		char[] charArray = {'P','A','N','K','A','J'};
		
		String str = new String(charArray);
		
		System.out.println(str);
	}

}

下图显示了char数组对String程序产生的输出。

我们正在使用String类构造函数,该构造函数将char数组作为参数从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()是在Strings到char数组和char array到String操作中使用的方法。