String str="abcdefg";
byte[] bstr=str.getBytes();
str=bstr.toString();
System.out.println(str);
最后为什么得到的不是abcdefg?
String s="ddddddddd";
byte []b=s.getBytes();
byte []a=new byte[50];
String ss=new String(a);
a.toString()与new String(a)是不同的,前者把每个byte转换成char,组成String;后者将每两个byte合成一个char,再组成String。
换成
String str="abcdefg";
byte[] bstr=str.getBytes();
str=new String(bstr);
System.out.println(str);
new String(byte[],charsetname) String的构造函数
String.getBytes() String.getBytes(charsetname)
原理上java中用来表示Sring类是不可变的,没有任何方法允许你改变一个字符串的内容,如果你希望对字符串本身进行修改,需要使用StringBuffer对像。
String str="abcdefg";
StringBuffer strB = new StirngBuffer( str );