一.String类

1.1 字符串基础操作方法

1.1.1 length()返回字符串长度
	String a = "haohaoxuexi"
	a.length();//返回字符串长度
1.1.2 isEmpty()判断字符串是否为空
	String a = "haohaoxuexi"
    a.isEmpty();//判断字符串是否为空
1.1.2.1 一些关于判空的区别
		String a = "";//1
		String b = " ";//2
		String c = null;//3

​ 1为空字符串,当使用isEmpty();方法判空时为true;

​ 2为空格字符串,使用isEmpty();方法判空时为flase;由此可见空格也算字符

​ 3使用isEmpty();方法时会出现空指针异常。

​ 1即使为空但在常量池中任然存在,3为null空对象,因此在内存中没有任何地址。

1.1.3 startWith() 判断字符串以什么开头
	String a = "BeiJing";
	a.startWith(B); //true
	a.startWith(Bei);//true
	a.startWith(e);//flase
1.1.4 toUpperCase() 使字符串中所有英文字母大写
        String aa = "BeiJing";
        System.out.println(aa.toUpperCase());//BEIJING
1.1.5 toLowerCase() 小写

调用toUpperCase()和toLowerCase()并不会改变aa本身的值,而是新建一片内存复制原字符串后进行操作,若次数太多会造成资源占用过多。

2. 字符串查找方法⭐

2.1 charAt()
        String aa = "BeiJing";
        System.out.println(aa.charAt(4));//i

​ 由此可见String底层是一个char类型的数组,charAt()方法可以根据下标返回对应的字符。

2.2 indexOf()
        String aa = "BeiJing";
        System.out.println(aa.indexOf("i"));// 2 
		System.out.println(aa.indexOf("X"));//-1
        System.out.println(aa.indexOf("i",3));//4

​ 返回字符串内第一个对应字符的下标,找不到返回-1,第二个参数为从第几位开始查找。

2.3 lastIndexOf()
        String aa = "BeiJing";
        System.out.println(aa.lastIndexOf("i"));//4

​ 相应的该方法返回字符串内倒数第一个对应的字符的下标。

2.4 substring()
        String aa = "BeiJing";
        System.out.println(aa.substring(3));//Jing
        System.out.println(aa.substring(2,5));//iJi

​ substring()方法当只有一个参数时,从该参数所指下标开始截取字符串。第二个参数位终止截取时的下标。

3. 字符串拼接、替换、查询是否包含方法⭐

3.1 contains()
        String aa = "BeiJing";
        System.out.println(aa.contains("b"));//false
        System.out.println(aa.contains("B"));//true

查询字符串中是否含有参数字符,返回布尔类型。

3.2 replace() / replaceAll()
        String aa = "BeiJing";
        System.out.println(aa.replace("Bei","Nan"));//NanJing
        System.out.println(aa.replaceAll("Bei","Nan"));//NanJing

​ 两者都将对应字符串替换为后面的字符串区别在于replaceAll()需要经过正则表达式的判断。

3.3 concat()
        String aa = "BeiJing";
        System.out.println(aa.concat(" in China"));//BeiJing in China
        System.out.println(aa+" in China");//BeiJing in China

/******************************************************************************/		aa.concat(" N");
        aa.concat("B");
        System.out.println(aa);//BeiJing

concat()方法用于拼接字符串。从输出结果看concat()方法与字符串相加所实现的效果是一样的.

​ 第二部分可以看出,concat()方法并不会改变字符串aa上值,而是像上面toUpperCase()方法一样重新开辟一个内存并复制过去原字符串进行拼接操作,过多进行此操作会占用不必要的内存,也可以说String是不能改变的,因为改变会造成资源浪费。

3.4 split()
        String aa = "Bei-Jing-Xi-An";
        String[] sr = aa.split("-");
        System.out.println(Arrays.toString(sr));//[Bei, Jing, Xi, An]

按照指定字符串进行分割,返回值为String数组

3.5 trim()
        String aa = " Bei-Jing-Xi-An ";
        System.out.println(">"+aa+"<");//> Bei-Jing-Xi-An <
        System.out.println(">"+aa.trim()+"<");//>Bei-Jing-Xi-An<

​ tirm()方法用于去除字符串首尾的空格

4. 比较方法

4.1 equals()
4.2compareTo() / compareToIgnoreCase()
	String aa = "Bei-jing-Xi-An";
	String bb = "Bei-Jing-Xi-An";
	System.out.println(aa.compareTo(bb));//32

​ 比较大小,底层比较ASCii值,前者区分大小写,后者不区分大小写