String类

1.String 是引用数据类型

2.一个字符串是常量,在堆中的常量池中,只能改变字符串变量的引用地址

3.字符串本质是一个字符数组

4.String类重写了equals方法比的是内容

 

1                 String s1 = "abc";// 一个对象 在常量池中
2         String s2 = new String("abc");// 两个对象 "abc"在常量池中 s2在堆中
3         String s3 = "abc";
4         System.out.println(s1 == s2);// fales
5         System.out.println(s1 == s3);// true            

总结:一对双引号就是一个String对象

 

String类的构造方法

 1 // 1. 传一个字节数组
 2         byte[] bytes = { 65, 66, 67, 68 };
 3         String str1 = new String(bytes); // 正数走ASCII码表,被解析成字符串 负数为汉字, 一个汉字两个字节
 4         System.out.println(str1);
 5         String str2 = new String(bytes, 1, 2); // 选择转几个 从索引1处 解析2个包括索引1
 6         System.out.println(str2);// BC
 7 
 8         // 传一个字符数组
 9 
10         char[] chars = { 'a', '5', 'e', '' };
11         String str3 = new String(chars, 0, 1);
12         System.out.println(str3);// a

 

String类的常用方法

 

 1 String sss = "i love java";
 2         System.out.println(sss.length());// 字符串长度 11 空格也算一个字符
 3         System.out.println(sss.substring(3)); // 从索引3开始包括3 ove java
 4         System.out.println(sss.substring(0, 2));// i 从索引0开始包括0 往后截取两个
 5         System.out.println(sss.startsWith("i"));// 判断是否以i开头 true
 6         System.out.println(sss.endsWith("java"));// 判断是否以java结尾 true
 7         System.out.println(sss.contains("j"));// 判断是否包含某个字符串 true
 8         System.out.println(sss.indexOf("a")); // 返回子字符串第一次出现的索引 8 没有就返回-1
 9 
10         // 字节数组转字符串 字符数组转字符串 通过String类的构造方法
11         // 字符串=》字节数组
12         String ss2 = "ABCD";
13         byte[] b = ss2.getBytes();
14         for (byte bb : b) {
15             System.out.println(bb);// 65 66 67 68
16         }
17         // 字符串=》字符数组
18         for (char bb : ss2.toCharArray()) {
19             System.out.println(bb);// A B C D
20         }
21 
22         // 忽略大小写的比较
23         String a = "ABC";
24         String c = "abc";
25         System.out.println(a.equalsIgnoreCase(c)); // true
26         System.out.println(a.charAt(0)); // A
27 
28         char d = 'D';
29         char e = 'E';
30         System.out.println(d < e);// true 比较的是ASCII值
31         System.out.println("D".toLowerCase());// d
32         System.out.println("d".toUpperCase());// D
33      //字符串的替换
34         String str5 = "ABCD";
35         System.out.println(str5.replace("A", "哈哈"));// 哈哈 BCD

 

posted @ 2019-03-14 20:53  LiuXiaoZhang  阅读(139)  评论(0编辑  收藏  举报