详谈String类

String类

首先,我们需要知道String是一个对象,而不是八大基本数据类型;然后我们还需要了解String是不可修改的,是用final修饰的,接下来我们来了解String的创建

String创建方式

1.通过赋值运算
String str2="帅帅哒";
2.通过new运算符
String str4=new String("帅帅哒");
3.通过字符数组
char a[]={'A','b','c'}; String str1=new String(a);
4.通过截取字符数组
char a[]={'帅','帅','哒'}; String str1=new String(a,0,2);
注意:这里第二个参数代表起始下标,第三个参数代表截取长度,上句代码等价于:String str1=new String(“帅帅”);

String类常用方法

public class demo1{
	public static void main(String[] args) {
		
		String str="我是帅帅哒的孩子";
		
		System.out.println(str.length());	//8
		
		System.out.println(str.charAt(5));	//的
		//索引第一个字母是从0开始,最后一个是length()-1
		
		/**第一次指定字符的下标返回,以及指定位置之后第一次出现的字符下标*/
		System.out.println(str.indexOf("帅"));	//2
		System.out.println(str.indexOf("帅", 3));	//3
		System.out.println(str.indexOf("帅", 2));	//2
		System.out.println(str.indexOf("帅",5));		//-1
		//这里是包含,所设下标的位置
		
		/**最后一次指定字符的下标返回,以及指定位置之前第一次出现的字符下标*/
		System.out.println(str.lastIndexOf("帅"));	//3
		System.out.println(str.lastIndexOf("帅", 2));	//2
		System.out.println(str.lastIndexOf("帅", 3));	//3
		
		/**字符替换*/
		System.out.println(str.replace("帅", "美"));		//我是帅帅哒的孩子
		System.out.println(str.replaceFirst("帅", "美"));	//我是美帅哒的孩子
		System.out.println(str.replaceAll("帅", "美"));		//我是帅帅哒的孩子
		/**
		 * 相同点:replace和replaceAll都是全部替换
		 * 不同点:replaceAll支持正则表达式以及转移符,而replace不支持,输入的什么就是什么,例如如下:
		 * 在replaceAll中的\是转移字符 需要用\\表示,而replace中直接\就可以
		 * \\d,在replaceAll中表示所有数字字符替换	而在replace中就是代表\\d而已
		 * */
		
		
		
		
		String str2="qwerTYUI,ZXCV";
		String str3="QWERzYUI,zxcv";
		String str8="QWERtyui,zxcv";
		String str5="qwe.asd";
		
		/**字符串大小写的相互转换*/
		System.out.println(str2.toLowerCase());	//qwertyui,zxcv
		System.out.println(str2.toUpperCase());	//QWERTYUI,ZXCV
		
		/**字符串的提取与拆分以及合并*/
		System.out.println(str2.substring(1,2));	//w
		System.out.println(str2.substring(str2.length()-3));	//XCV
		//这里第一个参数是必填的,非负数,代表起始下标,然后第二个参数可选择不填,代表结束下标,不包含
		String str4[]=str2.split(",");
		System.out.println(str4[0]);	//qwerTYUI
		
		str4=str5.split(".");
		System.out.println(str4[0]);	//报错,数组越界
		
		str4=str5.split("\\.");
		System.out.println(str4[0]);	//qwe
		
		/**
		 * 这里,注意一下,split的根据正则表达式的原则进行比配
		 * 在表达式中.代表任意字符,所以只有用\转移字符表达才会有正确答案
		 * */
		
		System.out.println(str2.concat(str));	//qwerTYUI,ZXCV我是帅帅哒的孩子
		
		
		
		/**去除字符串两边的空格*/
		String str6="   qwe q ";
		System.out.println(str6+":"+str6.length());		//   qwe q :9
		System.out.println(str6.trim()+":"+str6.trim().length());	//qwe q:5
		
		
		
		/**字符串的比较*/
		System.out.println((str2.compareTo(str3))>0?"str2>str3":"str2<str3");	//str2>str3
		System.out.println((str2.compareToIgnoreCase(str3))>0?"str2>str3":"str2<str3");	//str2<str3
		
		/**
		 * 这里第一个方法是区分大小写,然后第二个方法是不区分大小写
		 * 比较方式是按Unicode编码值方式比较
		 * 大于返回正数,小于返回负数,相等返回0
		 * */
		
		System.out.println(str2.equals(str8));	//false
		System.out.println(str2.equalsIgnoreCase(str8));	//true
		
		/**
		 * 第一个是区分大小写,第二个是不区分大小写
		 * 只有当长度相等,Unicode编码也一样才返回true
		 * */	
	}
}

总结

关于String的更多方法以及更多实际使用,还是需要自己动手多实践,大家对我的博客有什么意见或者什么补充,欢迎评论区讨论哦

猜你喜欢

转载自blog.csdn.net/qq_37871033/article/details/86319414