是String的一个方法
String的getBytes()方法是得到一个系统默认的编码格式的字节数组
getBytes("utf-8") 得到一个UTF-8格式的字节数组
把String转换成bytes,各种编码转换成的bytes不同,比如UTF-8每个汉字转成3bytes,而GBK转成2bytes,所以要说明编码方式,否则用缺省编码。
得到一个系统默认的编码格式的字节数组
public class Demo { static String str="ok"; static byte[] a=str.getBytes();//字符串转字节数组 public static void main(String[] args) { System.out.println(a);//输出字节数组的内存地址 System.out.println(Arrays.hashCode(a));//输出字节数组的希哈值 System.out.println(Arrays.toString(a));//输出字节数组中每个字节对应的ascii值 System.out.println(new String(a));//把字节数组再转为字符串输出 } }
[111, 107]
ok
window下默认缺省编码用的是GBK所以,转换中文对应的2字节/1汉字
public class Demo { static String str="好"; static byte[] a=str.getBytes();//字符串转字节数组 public static void main(String[] args) { System.out.println(Arrays.toString(a));//输出字节数组中每个字节对应的ascii值 } }
[-70, -61]
如果指定的话,比如指定utf-8,转换中文对应的3字节/1汉字
public class Demo { static String str="好"; static byte[] a=str.getBytes("UTF-8");//字符串转字节数组 public static void main(String[] args) { System.out.println(Arrays.toString(a));//输出字节数组中每个字节对应的ascii值 } }
[-27, -91, -67]