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的更多方法以及更多实际使用,还是需要自己动手多实践,大家对我的博客有什么意见或者什么补充,欢迎评论区讨论哦