Java关于String类的学习笔记(一看就会)

1、基本知识

1、java中所有的双引号字符串,都是String类的对象
2、字符串不可变,他们的值在创建后不能被更改
3、虽然String的值是不可变的,但是它们可以被共享
​
字符串常量池:当使用双引号创建字符串对象的时候,系统会检查该字符串是否存在字符串常量池中存在
   不存在:创建
   存在:不会重新创建,而是直接复用
        String s1 = "aaa";
        String s2 = "aaa";
        System.out.println(s1==s2);//true
        String s3 = "aaa";
        String s4 = new String("aaa");
        System.out.println(s3==s4);//false
 /*
            当字符串之间使用+号串联(拼接)的时候,
        系统底层会自动创建一个StringBuilder对象,
        然后在调用其append方法完成拼接。
        拼接后,在调用其toString方法转换为String类型
        */
        String s5 = "aaa";
        String s6 = "aa";
        String s7 = s6 + "a";
        System.out.println(s5==s7);//false
     //Java存在常量优化机制,在编译的时候,就会把"a" + "b" + "c"拼接乘"abc"    
        String s1 = "abc";
        String s2 = "a" + "b" + "c";
        System.out.println(s1 == s2);//true

2、字符串比较

使用==做比较:

  • 基本类型:比较的是数据值是否相同

  • 引用类型:比较的是地址值是否相同

字符串是对象,它比较内容是否相同,是通过一个方法来实现的,这个方法叫:equals()

  • public boolean equals(Object anObject):将此字符串与指定对象进行比较。由于我们比较的是字符串对象,所以参数值传递一个字符串

            String s1 = "abc";
            String s2 = "ABC";
            String s3 = "abc";
            System.out.println(s1.equals(s2));//false
            System.out.println(s1.equals(s3));//true
            //equalsIgnoreCase()不考虑大小写比较
            System.out.println(s1.equalsIgnoreCase(s2));//true

3、字符串遍历

  • public int length():返回此字符串的长度

  • 数组的长度:数组名.length

  • 字符串的长度:字符串对象.length()

  • public char charAt(int index):返回指定索引处的char值,字符串的索引也是从0开始的

 String s = "abcde";
        for(int i = 0 ; i < s.length() ; i++){
            char c = s.charAt(i);
            System.out.println(c);
        }
  • public char[] toCharArray():将当前字符串拆分为字符数组并返回

 String s = "abcdef";
        //将字符串拆分为字符数组
        char[] chars = s.toCharArray();
        for(int i = 0; i < chars.length; i++){
            System.out.println(chars[i]);
        }

4、截取字符串

  • String substring(int beginIndex):

    • 从传入的索引位置处,向后截取,一直截取到末尾,得到新的字符串返回

  • String substring(int beginIndex,int endIndex):

    • 从beginIndex索引位置开始截取,截取到endIndex索引位置得到新的字符串返回(包含头,不包含尾)

Scanner sc = new Scanner(System.in);
        System.out.println("请输入要屏蔽的号码:");
        String num = sc.next();
        String begin = num.substring(0,3);
        String end = num.substring(7);
        System.out.println(begin + "****" + end);

5、字符串替换

  • String replace(CharSequence target , CharSequence replacement)

    • 将当前字符串的target(被替换的旧值)内容,使用replacement(替换的新值)进行替换,返回新的字符串

              Scanner sc = new Scanner(System.in);
              System.out.println("请输入聊天内容:");
              String s = sc.next();
              String newS = s.replace("TMD","***");
              System.out.println(newS);

6、切割字符串

  • String[] split(String regex):根据传入的字符串作为规则切割,将切割后的内容存入字符串数组中,并将字符串数组返回

 Scanner sc = new Scanner(System.in);
        System.out.println("请输入:");
        String s = sc.nextLine();
        String[] split = s.split(",");
        String06_Student stu = new String06_Student(split[0], split[1]);
        System.out.println(stu.getName()+"..."+stu.getAge());   

7、StringBuilder

String的内容是不可变的-----StringBuilder内容是可变的

StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器

  • 作用:提高字符串的操作效率

    //可变字符串的解释代码
            StringBuilder sb = new StringBuilder();
            sb.append("红色");
            System.out.println(sb);//红色
            sb.append("蓝色");
            System.out.println(sb);//红色蓝色
            sb.append("绿色");
            System.out.println(sb);//红色蓝色绿色

构造方法:

  • public StringBuilder():创建一个空白可变字符串对象,不含有任何内容

  • public StringBuilder(String str):根据字符串的内容,来创建可变字符串对象

StringBuilder的常用方法:

  • public StringBuilder append(任意类型):添加数据并返回对象本身

     StringBuilder sb = new StringBuilder();
            sb.append("蓝色").append("红色").append("绿色")
  • public StringBuilder reverse():返回相反的字符序列

      sb.reverse();
            //反转前是:蓝色红色绿色
            //反转后是:色绿色红色蓝
  • public int length():返回长度(字符出现的个数)

  • public String toString():通过toString()就可以实现把StringBuilder转换为String

StringBuilder和String相互转化

  • StringBuilder转换为String

    • public String toString():转换方法

  • String转换为StringBuilder

    • public StringBuilder(String s):通过构造方法转换

  String s = "aaa";
        StringBuilder sb = new StringBuilder(s);
        String Str = sb.toString();

以上就是自己自学中整理的一些关于String类用到的方法,快快收藏拿过去敲30遍++

会持续更新自己自学的笔记,耐心等待呀

上一篇:每天学习一点点——《每日一面》--基础篇


下一篇:Java中final修饰符与类型检查