字符串(String)杂谈学习笔记
1.在java中,一个char是2个字节(byte),而一个中文汉字是一个字符,也是2个字节。而英文字母都是一个字节,因此它也能保存在一个byte中,一个汉字却不能。(char:16,byte:8)。2.char类型
public class ChineseTest1 {public static void main(String[] args) {char a='中';char b='国';byte c='a';byte d='b';char e='e';char f='f';String w="a";System.out.println(a);System.out.println(a+b);System.out.println(w+a);System.out.println(a+c);System.out.println("欢迎来到"+a+b);System.out.println();/*System.out.println("fewg"+a+b);System.out.println(a+e);System.out.println(c+"fewf");*/}} 运行结果:
中42282a中20110欢迎来到中国 结论: (1)当char类型单独、“+”字符串输出时,如果char中的值为中文,则输出中文。
(2)当char类型用“+”连接char类型或byte类型输出时,则输出ASCII码值,然后相加。
3.byte类型
public class ChineseTest1 {public static void main(String[] args) {char a='中';byte c='a';byte d='b';System.out.println(c);System.out.println(a+c);System.out.println(c+d);System.out.println(c+"fewf");}} 运行结果:
972011019597fewf 结论:也就是说,不管byte是单独输出,还是和char,String类型一起输出,byte类型都是输出ASCII码值.
4.反转字符串
public class StringReverse {public static void main(String[] args) {String str = "A quick brown fox jumps over the lazy dog.";StringBuffer s = new StringBuffer(str);s = s.reverse();System.out.println(s);}} 运行结果:
.god yzal eht revo spmuj xof nworb kciuq A
5.字符编码
(1)JAVA所采用的编码方案是UTF-16BE。
public class EncodeTest {public static void main(String[] args) {String s="str中国";try {String a=new String(s.getBytes(),"UTF-8");//转化为utf-8字符int c=s.getBytes("GBK").length;//转化为utf-8字符后的字节数System.out.println(c);} catch (UnsupportedEncodingException e) {e.printStackTrace();}}} 运行结果:
7
6.判断是否为汉字
public class EncodeTest2 { public static void main(String[] args) { String s="str中国"; System.out.println(s.charAt(0)); System.out.println(s.charAt(1)); System.out.println(s.charAt(2)); System.out.println(s.charAt(3)); System.out.println(s.charAt(4)); byte[] k=s.getBytes(); byte[] b=new byte; System.out.println(k.length+"个字节"); for(int i=0;i<k.length;i++){ System.out.println("第"+(i+1)+"个字节的值是"+k); } System.arraycopy(k, 0, b, 0, 4);//截取4个字符 System.out.println(new String(b)); }}
7.
public class EncodeTest2 {public static void main(String[] args) {String s="str中国";System.out.println(s.charAt(0));System.out.println(s.charAt(1));System.out.println(s.charAt(2));System.out.println(s.charAt(3));System.out.println(s.charAt(4));byte[] k=s.getBytes();byte[] b=new byte;System.out.println(k.length+"个字节");for(int i=0;i<k.length;i++){System.out.println("第"+i+"个字节的值是"+k);}System.arraycopy(k, 0, b, 0, 4);//截取4个字符System.out.println(new String(b));}} 运行结果:
str中国7个字节第1个字节的值是115第2个字节的值是116第3个字节的值是114第4个字节的值是-42第5个字节的值是-48第6个字节的值是-71第7个字节的值是-6str?
页:
[1]