`
小牛犊
  • 浏览: 93551 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

字符串(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");*/
	}
}

    运行结果:

  

中
42282
a中
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");
	}
}

  运行结果:

97
20110
195
97fewf

   结论:也就是说,不管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[5];
  System.out.println(k.length+"个字节");
  for(int i=0;i<k.length;i++){
   System.out.println("第"+(i+1)+"个字节的值是"+k[i]);
  }
  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[5];
		System.out.println(k.length+"个字节");
		for(int i=0;i<k.length;i++){
			System.out.println("第"+i+"个字节的值是"+k[i]);
		}
		System.arraycopy(k, 0, b, 0, 4);//截取4个字符
		System.out.println(new String(b));
	}
}

    运行结果:

s
t
r
中
国
7个字节
第1个字节的值是115
第2个字节的值是116
第3个字节的值是114
第4个字节的值是-42
第5个字节的值是-48
第6个字节的值是-71
第7个字节的值是-6
str?

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics