标签:
package com.string; import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; public class StringTest { public static void main(String[] args) { /** * String(byte[] bytes) * 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。 */ byte[] b1 = {‘a‘,‘b‘,‘c‘,‘d‘}; System.out.println(new String(b1));//abcd /** * String(byte[] bytes, Charset charset) * 通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。 */ System.out.println(new String(b1, Charset.forName("UTF-8")));//Charset代表的是编码方式 /** * String(byte[] bytes, int offset, int length) * 通过使用平台的默认字符集解码指定的 byte子数组,构造一个新的 String。 */ System.out.println(new String(b1, 1, 2));//bc 从第2个字符开始依次取两个字符拼接成字符串 /** * String(byte[] bytes, int offset, int length, Charset charset) * 通过使用指定的 charset 解码指定的 byte 子数组,构造一个新的 String。 */ System.out.println(new String(b1, 1, 3, Charset.forName("UTF-8")));//bcd /** * String(byte[] bytes, int offset, int length, String charsetName) * 通过使用指定的字符集解码指定的 byte 子数组,构造一个新的 String。 */ try { System.out.println(new String(b1, 0, 2, "UTF-8"));//ab } catch (UnsupportedEncodingException e) { e.printStackTrace(); } /** * String(byte[] bytes, String charsetName) * 通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。 */ try { System.out.println(new String(b1, "UTF-8"));//abcd } catch (UnsupportedEncodingException e) { e.printStackTrace(); } /** * String(char[] value) * 分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。 */ System.out.println(new String(b1));//abcd /** * String(char[] value, int offset, int count) * 分配一个新的 String,它包含取自字符数组参数一个子数组的字符。 */ System.out.println(new String(b1, 2, 2));//cd /** * String(int[] codePoints, int offset, int count) * 分配一个新的 String,它包含 Unicode 代码点数组参数一个子数组的字符。 */ int[] b2 = {65,66,67,68,97,97}; System.out.println(new String(b2, 1, 3));//BCD 将Unicode码转为对应字符 /** * String(String original) * 初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的副本。 */ System.out.println(new String("abcd"));//abcd 与new String()在内存分配上存在差异 /** * String(StringBuffer buffer) * 分配一个新的字符串,它包含字符串缓冲区参数中当前包含的字符序列 */ StringBuffer b3 = new StringBuffer("abcd"); System.out.println(new String(b3));//abcd /** * String(StringBuilder builder) * 分配一个新的字符串,它包含字符串生成器参数中当前包含的字符序列。 */ StringBuilder b4 = new StringBuilder("abcd"); System.out.println(new String(b4));//abcd } }
标签:
原文地址:http://www.cnblogs.com/sunjf/p/string_construction.html