1,String的概述
字符串是由多个字符组成的一串数据(字符序列)的字符串常量,java中所有字
符串都是String类的实例.
有两种创建形式:
1,String s = "abc";
先在栈中创建一个对String类的对象引用变量s,然后去字符串常量池中查找
有没有"abc", 如果没有则在常量池中添加”abc”, s引用变量指向常量池中
的”abc”,如果常量池中有,则直接指向改地址即可,不用重新创建.
2,一概在堆中创建新对象,值存储在堆内存的对象中。
String s = new String("abc");
3,同时需要注意的是底层存储字符串内容的数组,是被final修饰的,必须在对象创建之初由构造方法对其赋值。
private final char value[];
String s = "abc"; abc
s += "aaa"; abcaaa
s += "bbb"; abcaaabbb
s += "ccc"; abcaaabbbccc 每次+= + 其实都是创建了一个新的字符串对象
2,String的判断功能
String s = "abcd"; //null-关键字 ""-->字符串对象的值是""
System.out.println(s.equals("abcD"));//判断是否相等
System.out.println(s.equalsIgnoreCase("abcD"));//忽略大小写
System.out.println(s.contains("a"));//判断是否包含所对的字符串
System.out.println(s.contains("ab"));//判断是否包含子串(子串必须是连续的)
System.out.println(s.contains("ac"));//false
System.out.println(s.isEmpty());//判断是否是空串""
System.out.println(s.startsWith("ab"));//判断是否以指定的子串开头
System.out.println(s.endsWith("bd"));//判断是否以以指定的子串结尾
3,String的获取功能
String s = "abcdcde";
//0123456
System.out.println(s.length());//获取该字符串的长度
System.out.println(s.charAt(2));//获取前两个字符
System.out.println(s.indexOf("c"));//返回指定字符首次出现的位置
System.out.println(s.indexOf("cd"));//返回指定字符串首字母首次出现的位置
System.out.println(s.indexOf("c", s.indexOf("c")+1));//从指定的位置开始查找
System.out.println(s.lastIndexOf("c"));//从后向前查找
//String s1 = s.substring(3);//从指定的位置开始截取字符串,返回一个新的子字符串
String s1 = s.substring(0,4);//从指定的位置开始到指定的位置结束(不包含结束)截取字符串,返回一个新的子字符串
4,转换功能
String s = String.valueOf(a);//把其他类型转为字符串 建议使用的,避免出现空指针异常
System.out.println(s);
char[] c = {'a','b','c'};
String s1 = String.valueOf(c);
String s2 = "abcDEF你好";
System.out.println(s2.toLowerCase());//转换为小写字母
System.out.println(s2.toUpperCase());//转换为大写字母
String s3 = s2.concat("wwwww");//将指定字符串拼接到字符串末尾,返回一个新的字符串
System.out.println(s3);
String s4 = "ab;cde;fg";
String [] strings = s4.split(";"); // 使用指定的字符将字符串分割为数组 正则表达式。
5,替换功能
String s = " abcd cefg ";
System.out.println(s.replace('c', 'C'));//把小写c全部转换为大写C
System.out.println(s.replace("cd", "CC"));//把字符串cd转换为字符串CC
// replaceAll() 使用正则表达匹配需要替换的内容
System.out.println(s.replaceAll("c", "CC"));
System.out.println(s.replaceFirst("c", "CC"));
String trim()//去除字符串两空格