Java中如何拼接两个char数组并得到char数组类型的结果
Java 拼接两个char数组的实现方案
方案1:使用System.arraycopy()(全版本兼容,性能最优)
无需引入第三方依赖,是JDK提供的native底层实现,兼容性和性能表现最好,推荐优先使用:
import java.util.Arrays; public class CharArrayMerge { public static void main(String[] args) { char[] vowels1 = {'a', 'e', 'i', 'o', 'u'}; char[] vowels2 = {'A', 'E', 'I', 'O', 'U'}; // 初始化长度为两个原数组之和的新数组 char[] mergedVowels = new char[vowels1.length + vowels2.length]; // 拷贝第一个数组到新数组的前半段 System.arraycopy(vowels1, 0, mergedVowels, 0, vowels1.length); // 拷贝第二个数组到新数组的后半段 System.arraycopy(vowels2, 0, mergedVowels, vowels1.length, vowels2.length); // 验证输出:打印结果为 [a, e, i, o, u, A, E, I, O, U] System.out.println(Arrays.toString(mergedVowels)); } }
方案2:Java 11+ 使用CharArrayWriter简化写法
如果你使用Java 11及以上版本,可以用IO包下的CharArrayWriter实现更简洁的拼接:
import java.io.CharArrayWriter; import java.util.Arrays; public class CharArrayMerge { public static void main(String[] args) { char[] vowels1 = {'a', 'e', 'i', 'o', 'u'}; char[] vowels2 = {'A', 'E', 'I', 'O', 'U'}; CharArrayWriter writer = new CharArrayWriter(); writer.write(vowels1, 0, vowels1.length); writer.write(vowels2, 0, vowels2.length); char[] mergedVowels = writer.toCharArray(); System.out.println(Arrays.toString(mergedVowels)); } }
方案3:依赖Apache Commons Lang工具类
如果项目已经引入Apache Commons Lang依赖,可以直接调用工具类方法,代码最简洁:
import org.apache.commons.lang3.ArrayUtils; import java.util.Arrays; public class CharArrayMerge { public static void main(String[] args) { char[] vowels1 = {'a', 'e', 'i', 'o', 'u'}; char[] vowels2 = {'A', 'E', 'I', 'O', 'U'}; char[] mergedVowels = ArrayUtils.addAll(vowels1, vowels2); System.out.println(Arrays.toString(mergedVowels)); } }
内容的提问来源于stack exchange,提问作者A.Y.T
相关产品推荐
相关产品推荐

