一、字符串的创建
1、String s = “abc”; //创建一个字符串对象“abc”在常量池中。
2、String s1 = new String(“abc”); //创建两个对象,一个new对象和一个字符串对象在堆内存中。
3、注意:
(1)字符串对象一旦初始化就不会被改变。(是指等号右边,左边是引用变量)。
(2)字符串常量池中数据是共享的,一旦有所需字符串就不会重复创建了。
4、比较
String s = "abc";
String s1 = new String("abc") ;
//比较是对象的地址值,因为是不同对象,所以为false
System.out.println(s==s1); //false
//比较是对象中的内容值,所以相等,为true
System.out.println(s.equals(s1)); //true
二、String类中常见方法:获取、转换、比较
1、获取—-字符串的长度、位置、字符、子串
String s = "abcdef";
s.length(); //字符串长度6
s.charAt(1); //1位置的字符b
s.indexOf('c'); //字符c的下标2,也可用于字符串位置查询
s.substring(1,4); //获取子串1-3,bcd
2、转换—-字符数组、字节数组、大小写、替换、数字转字符
char[] arr = s.toCharArray(); //字符串转字符数组
byte[] byt = s.getBytes(); //字符串转字节数组
s.toUpperCase(); //字符串转成大写
s.replace('a','A'); //字符串中某个字符或串替换
s.trim(); //将字符串两端空格删除
String.valueOf(4); //静态方法将4转成字符
3、比较—-相等、包含、开头和结尾、大小
s.equals("abcdef"); //true 字符串相等
s.equalsIgnoreCase("ABCDEF"); //true 忽略大小写
s.contains("abc"); //true 是否包含,indexOf也可以
s.startsWith("ab"); //true 是否以某个字符串这个开头
s.endsWith("ef"); //true 是否用某个字符结尾
"abc".compareTo("aqw"); //-15 比较字符大小,结果为二者差值