小李的40天java历程——Day07(JSE)

mac2026-09-24  12

1 String的基本操作

`/**

java中规定:字符串相同,不创建新对象,而是重用他。如果需要修改字符串,则重新创建一个对象。 包含常量池将引用指向堆中的同一个对象 java.doc :生成注释文档。@author lei_l

*/ public class StringDemo { public static void main(String[] args) {

// **1。charArt()查看第几个字符,可以用于判断是否回文 //除了使用开关,还可以使用return 结束该方法,还可以尝试使用builder的reverse()方法 String str9 = "我今天想吃麻辣拌"; System.out.println(str9.charAt(3)); // 2。Boolean startWith(string str)//判断以什么开始 // Boolean endWith(string str)//判断以什么结束 String str6 = "我是一个Java小天才"; System.out.println(str6.startsWith("小天才")); System.out.println(str6.startsWith("我")); System.out.println(str6.endsWith("天才")); // **3。indexOf() 重第几个字符开始查起是否为该字符 ,没有查到返回-1; //instanceOf可以用于检查强转是否成功(前面的为大类型,后面的为强转类型) String str5 = "thinking in Java"; System.out.println("下标"+str5.indexOf("in")); System.out.println("下标为"+str5.indexOf("in",3)); //4。 trim() 去掉一个字符串的前导和后继的空字符 String str7 = " good good study "; System.out.println(str7.trim()); //5。 **substring(int start ,int end) 截取字符串,(javaAPI特性:通常两个数字表示范围是,含头不含尾) String str8 = "我爱java"; System.out.println(str8.substring(2,6)); // 6。**toUpperCase() toLowerCase() 转换大小写,只能是英文 String str = "我爱Java"; String uper = str.toUpperCase(); System.out.println(uper); String str1 = "我爱Java"; String lower = str.toLowerCase(); System.out.println(lower); // 7。static String vauleOf(Xxx xxx) 将java中其他的类型转化为字符类型 int a = 1; double b = 1.1; String str2 = String.valueOf(a); String str3 = String.valueOf(b); System.out.println(str2); System.out.println(str3); /* 8。如果字符串过多的进行修改,则可能会导致内存溢出的情况(gc没有来的及回收就满了),所以java专门设置了一个修改字符串的类 StringBulider StringBuilder:提供了用于修改字符串的相关内容和方法。 其内部维护的是一个可变(扩容)的字符串数组(String 是不可变的),所以修改都会在当前对象中完成——>频繁修改字符串时候使用的。 */ String str4 = "我爱学习Java"; //修改前先将 string 变为stringBuilder,及使用其中的toString()方法:有有参构造,也有无参构造。 StringBuilder sb1 = new StringBuilder(str4); sb1.toString();//返回的还是builder自身,因为是为了后面的追加。 //增 StringBuilder append(String str).——>向字符串的末尾追加指定内容。(有多种重载的类型,只不过在追加前需要转化为字符串类型) sb1.append(",为了找个好工作!"); System.out.println(sb1); //换 StringBuilder replace(int strat,int end,String str)--->换指定位置的内容 sb1.replace(1, 4,"不想学习");//注意两个数字的范围,含头不含尾 System.out.println(sb1.toString()); //删 StringBulider delete(int start ,int end);---->删除指定位置的内容 sb1.delete(0, 10); System.out.println(sb1); //插入 StringBuilder insert (int index ,String str)---->插入位置,插入字符 sb1.insert(0, "好好努力是"); System.out.println(sb1); //反转字符串 StringBulider reverse(); sb1.reverse(); System.out.println(sb1); //StringBuffer和StringBuilder区别,前者考虑线程安全问题(会执行稍微缓慢一些),后者考虑,执行速度快。 //什么时候用。在单线程的时候用stringbuilder,多线程的时候用String Buffer }

}`

这里是引用

2 正则表达式

2.2规范 1.2 正则表达式的方法: /** * 字符串支持正则表达式的方法一: * boolean matches(String regex) * 根据给定的正则表达式验证当前的字符是否符合要求,如果正确返回true,错误返回false。 * 字符串支持正则表达式的方法二: * String[] split(String regex) * 将当前字符串按按照满足正则表达式的部分进行拆分,返回拆分后的每段内容。 * 字符串支持正则表达式的方法三: * String[] replaceAll(String regex,String regex) * 将当前的字符串替换为自定义的字符串,返回给String数组中 * @author lei_l * */

3 object类

/** * object类:所有的类都是object类,包含所有类公用的方法。 * 1.toString();------>用于输出字符串。 * 通常我们调用toString()方法时,要重写该方法。----->因为object中toString()返回的是 类名@地址,没有实际意义 * 重写该方法时,建议字符串中包含当前对象的属性。 * 只有我们定义的类才重写该方法,JavaAPI中提供的类都自己重写好了该方法。 * 2. equals();------>判断当前对象与给定对象的内容一样不。 * 与==的区别(引用类型):==比的是否为同一个对象(地址是否一致) * equals重写后(不重写的话:object里面的equals就是==)比的是对象里面的内容 * 只有我们定义的类才重写该方法,JavaAPI中提供的类都自己重写好了该方法。 * @author lei_l * */

4 Integer

/** * 对于8大基本数据类型来说:他们是以值的形式存在的,所以他们没有面向对象的特性。自然他们不能继承object类,导致也不能使用多态,不能在object的角度上接受基本类型 * 包装类:1.是不可变的类,在构造了包装类的对象后,不允许改变包装在其中的值。? * 解决基本数据类型不能面向对象开发的我问题。 * 2.在java.lang中定义,不用导入。(Integer,Character这两个名字不一样),byte,short,int,long,double,float 在lang。Number中。。char boolean 在lang.Object中。 * 3.数字类型的包装类继承自Number: * 3.1包装类型变基本类型(拆箱) * 提供了intVaule,doubleVaule等方法用于将当前包装类中的值,以其他形式的数字类型返回 * 3.2基本类型转变为包装类型的两种方法:(装箱) * 调用构造方法 * 调用静态方法vauleOf()(推荐。因为只给了一个字节,-128~127 超过才会new新的对象,不超可以重用-->节约内存) * 3.3都包含两个常类 MAX_VAULE, MIN_VAULE保存最大值最小值 * 4.包装类的方法:静态方法parseXXX(String str)--->可以将给定的字符串中的值转化为相对应的基本类型。(前提是字符串里的值符合基本类型的值的要求) * 5.JDK.5.0以后出现自动拆装箱(在编译时期,在.class文件中进行) * @author lei_l * */
最新回复(0)