小牛犊 发表于 2013-1-27 05:14:11

字符串(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();}}}   运行结果:

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]
查看完整版本: 字符串(String)杂谈学习笔记