2021
NewYear
-------------------------
January 09
API(定义好的类)
Java有很多的API,能学到秃头!
String类
String类 构造方法创建对象 特殊方式(不是构造方法) String 变量名 ="字符串内容"; //String常用的构造方法有:接口是一种引用数据类型 String() //创建一个空的字符串对象 String str = new ""; String(char[] arr) //根据字符数组创建字符串对象 char[] s1 ={'a','b'}; String ch = new String(s1)//字符串对象是 ab String(byte[] arr) //根据字节数组创建字符串对象 byte[] by = {97,98,99,100} String s2 = new String(by)//字符串对象是 abcd String(byte[] by, int offset从范围索引, int length到范围索引) 指定byte数组的范围,根据指定范围中的内容,来创建对应的字符串对象 //String str3 = new String(bys,1,3);// "bcd" String(char[] value) 根据char数组中的内容,来创建对应的字符串对象 //char[] chs = {'a','b','c','d','e'};String str4 = new String(chs);// "abcde" String(String original) 新创建的字符串是该参数字符串的副本。//String str5 = new String("itheima");// itheima //常用方法: .length();//获取长度方法 .charAt(索引);//获取字符方法 .equals(任意内容);// 比较内容是否相等 .concat("holle");//拼接 将指定的字符串连接到该字符串的末尾。 .indexOf("java");//查找字符串第一次出现的位置 .indexOf("java",1);//查找字符串第?次出现的位置 .lastIndexOf("java";//查找字符串最后出现的位置 .lastIndexOf("java",lastIndexOf-1);//查找字符串最后出现的位置往前找 .sbustring("java",12);//截取,直到字符串末尾 //拓展String类其他方法 .isEmpty();//判断字符串是否为空(长度为0返回true,不为0返回false) .cintains(参数);//判断字符串是否包含 给定的字符串 .endsWitch(参数);//判断字符串是否以 给定的字符串 结尾 // String fileName = "文件名.jpg"; fileName.endsWitch(".jpg"); .startsWitch(参数);//判断字符串是否以 给定的字符串 开头 // String[] name = {"小明","小红","大明",}; name[i].startsWitch("小"); .replace(参数,要替换的参数);//用新内容替代旧内容,返回新字符串 // String s1 = "我操,我操,我操,..."; String s2 = s1.replace("操","**"); .toLowerCase();//把字母转换成对应的小写形式 .toUpperCase();//把字母转换成对应的大写形式 .toCharArray();//把字符串转换为数组 .getBytes();//把字符串转换为字节数组 .trim();//移除首尾空格 .split(参数);/根据给定的内容,切割 字符串,返回字符串数组 .equalsIgnoreCase();//对比 不区分大小写
String类的特点
String类的特点: //字符串内容不可变,值创建后不能更改 (常量不可变) //虽然值不可变,但可以被共享! //字符串效果上相当于字符数组(char[]),但是底层原理是字节数组(byte[]) String对象特点 常量池不允许内容改变,新对象内容相同,新对象内容就指向相同对象内容//常量不可变 对象地址值不同 字符串的比较 equals();//比较两个内容是否相同//区分大小写 equalsIgnoreCase();//比较两个内容是否相同//不区分大小写 比较地址值 使用 ==//比较字符串内容是否相等,不要使用== 如果比较的是基本数据类型 比较的是 值 如果比较的是引用数据类型 比较的是 地址值 比较内容 使用 boolean equals(字符串内容)// s1.equals(s2) 创建字符串对象两种方式区别 构造方法创建对象://通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然字符串内容相同,但是地址值不同 char[] chs = {'a','b','c'}; String s1 = new String(chs);// s1字符串的内容: abc String s2 = new String(chs);// s2字符串的内容: abc // 上面的代码中,JVM首先会先创建一个字符数组,然后每一次new的时候都会有一个新的地址,只不过s1和s2参考的字符串内容是相同的 直接赋值创建对象: String str3 = "abc";// str3表示的字符串是: "abc" String str4 = "abc";// str4表示的字符串是: "abc" System.out.println(str3 == str4);// true 直接赋值方式创建的字符串是字符串常量 字符串对象.equals(对象)// s1.equals(任意内容) String s1 = "abc"; String s2 = "abc"; String s3 = "abcd"; System.out.println(s1.equals(s2));//true System.out.println(s1.equals(s3));//false
StringBuilder类
StringBuilder类//可变字符串 内容是可变的 特点: StringBuilder 是一个可变的字符串类,表示字符串 StringBuilder 拼接是直接在本身的字符串末尾进行 StringBuilder构造方法 常用构造方法 StringBuilder 变量名 = new StringBuilder(); // "" 创建一个空白可变字符串对象,不含任何内容 StringBuilder 变量名 = new StringBuilder("itheima"); // itheima 根据字符串的内容,来创建可变字符串对象 /* public static void main(String[] args) { //创建 无参、空 可变字符串对象 StringBuilder sb = new StringBuilder(); System.out.println("sb:" + sb); System.out.println("sb.length():" + sb.length()); //创建 有参 可变字符串对象 根据字符串的内容来创建可变字符串对象 StringBuilder sb2 = new StringBuilder("hello"); System.out.println("sb2:"+sb2); System.out.println("sb2.length():" + sb2.length()); } */ //常用方法 append(任意类型);//拼接、添加、追加内容 //将传入的内容追加到调用方法的对象后面并将内容改变候的该对象,作为返回值进行返回 //String name = "小明"; name.append("吃粑粑"); reverse();//反转 将调用这个方法的字符串内容反转,之后该字符串作为返回值 //不用写参 insert(索引,任意类型);//插入 在指定位置插入数据,并返回对象本身 //StringBuilder sb = new StringBuilder("i黑马"); sb.insert(1,t);//it黑马 toString();//StringBuilder转换为String //不用写参 链式编程 //当一个方法调用后、返回的还是该对象本身,就可以连续调用该方法 //return new StringBuilder(s).reverse().toString(); StringBuilder转换为String//调用toString()方法即可返回一个字符串 //StringBuilder sb =StringBuilder(s); sb.toString; String转换为StringBuilder//通过StringBuilder的有参构造方法将字符串添加即可 //String s= "黑马"; StringBuilder sb =StringBuilder(s)
今天不学习,明天变垃圾!