CSDN话题挑战赛第2期
参赛话题:学习笔记
前言:
学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。希望我的笔记能给和我一样的初学者带来那么些用处
一.String字符串的基本知识
1.关于String类的理解概述
主要有以下几点:
1.“字符”, 看见双引号即是Sting对象!!
2.字符对象存储在方法区中的字符常量池中,一个字符常量,一旦生成就永远是那样,无法改变
3.字符对象无法被垃圾回收器回收
4.new String(“字符”) 和 直接双引号:“字符” 两种创建字符串对象稍有那么一点区别;
5.'+'字符的连接,产生新的字符常量
6.比较字符串是否相等,最好用父类Object类中equals()方法,String类已经重写equals()方法
重写后的equal()方法不再比较引用的存储的地址,而是直接比较内容是否一致,一致则返回true,否则false
7.String类已经重写toString()方法,调用toString()输出时候不再是一串地址,则是具体的值
(注:输出一个引用,会自动调用toString())
2.对于概述内容的测试(注释非常详细!!)
public class Test_String {
public static void main(String[] args) {
String a="abc";//创建了一个字符串对象,放在方法区中的字符池中
String b="abc";//并没有创建新的对象,而是引用d存储了"abc"的地址,直接指向该对象
System.out.println(a.equals(b));// true
String c=new String("abc");
System.out.println("-----------------------------");
System.out.println(b==c); //false, 用==则是比较的是"abc"的地址和在堆中new 出对象的地址,显然不一样
System.out.println(b.equals(c)); // true( 所以字符对比还是用equals()
System.out.println("-----------------------------");
String K=new String("kfc");
System.out.println("kfc".equals(K));//"kfc"是一个字符类型对象,则有equals()方法,建议字符串在前,引用在后进行比较,
// 这样可以避免空指针异常
System.out.println("-----------------------------");
//面试题:
String e="cf"+"dnf";//此句,构造了三个字符对象,1."cf" 2."dnf" 3."cfdnf",而引用e指向的是"cfdnf"该字符对象
System.out.println(e);//cfdnf ,输出引用自动调用toString()方法,
}
}
对应关系图如下:
二、String类常用的方法():
(注:String字符串底层是数组,下标从0开始)
1.String charAt(int n) :返回对应下标的值
2.boolean contains(“字符1”) :判断当前字符串中是否包含有(“字符1”)
3.boolean endsWith(“字符2”):判断当前字符串是否以(“字符2”)
4:boolean starWith(“字符3”):判断当前字符是否以(“字符3”)
5:boolean equalsignore():忽略大小写判断两字符串是否相等
6:byte[] getBytes():将字符串转化为字节数组
7.String[ ] split(“字符4”) :将当前字符串以(“字符4”)拆分为String元素,返回值为一个String [] 数组
**// 8.String subString(int n) ,和 subString(int a,intb): 前者从当前字符串下标为 n处往后截取(含下标元素),后者截取范围内的字符串(含前下标元素,后下标不包含)
**
9. int indexOf(“字符6”) 判断:(“字符6”)第一次在当前字符的位置,返回值为下标(常用subString()结合使用)
10.int lastIndexOf(“字符7”) ;判断:(“字符7”)最后一次在当前字符串出现的位置,返回值为下标
11.char [ ] toCharArray(): 将当前字符串转化为字符数组
12 .String replace (参1:“old”,参2:“new”) : 替换字符,返回值为字符串
13.int length() : 返回值为字符串的长度 int n,还可以判断该字符是否为 空
14.String trim() :去除字符串前后空格,中间空格不去除
// 15/16 : toLowerCase() / :将当前字符串全部转化为(小/大)写,
17.String类中唯一一个静态方法: String.valuOf(): 将不是字符串的转为字符串
自我总结:
代码要多敲,方法要常用才能铭记于心,提高工作效率
引用:b站计算机老宋的一句话:人生没有白走的路,每一步都算数!
制作不易,希望各位看官一键三连,为我增添动力!