String类、StringBuffer类

String类

  字符串的本质是一个字符的数组。

  常量池:只要已将存在的就不会在创建了  

  String a="aaa"(看到“”就表示字符串本身对象) 有就不会创建,使用之前的内容和地址

  String s4 = new String("abc");会创建     因为new 不进常量池 会匹配常量池中相同内容的地址

  例:  

 1 public class Demo01 {
 2     public static void main(String[] args) {
 3         String str="aaa";
 4         str="bbb";
 5         System.out.println("str="+str);
 6         int a=1;
 7         a=2;
 8         System.out.println("a="+a);
 9         
10         
11         String s="abc";
12         System.out.println("s="+s);
13         String s2=new String("abc");
14         System.out.println("s2="+s2);
15     }
16 }

  如图所示:

   常用构造方法

    1.获取字符串长度:str.length()

    2.截取打印字符串:str.substring(7);  str.substring(2,6);

    3.判断字符串开头结尾。返回值true或false

public class Demo03 {
    public static void main(String[] args) {
        String str="I LOVE LUNENG";    
        //判断字符串开头结尾
        boolean flag=str.startsWith("a");
        System.out.println(flag);    
        System.out.println(str.endsWith("G"));
        }
}            

    4.是否包含另一个字符串:str.contains("LUNENG")

    5.第一次出现该字符串的索引,没有就是-1 :str.indexOf("L")

    6.转成一个字符数组。或者字节数组。

public class Demo03 {
    public static void main(String[] args) {
        String str="I LOVE LUNENG";
       byte[] ab=str.getBytes();
        for(int i=0;i<ab.length;i++){
            System.out.print(ab[i]+",");
        }
        System.out.println(str.getBytes());
        char[] aa=str.toCharArray();
        for(int i=0;i<aa.length;i++){
            System.out.print(aa[i]+",");
        }
        System.out.println(str.toCharArray());
        }
}

    

    7.比较内容是否相等:str.equals(str2)     str.equalsIgnoreCase(str2);//忽略大小写

    8.替换:str2.replace("i love luneng"," HAHA")

  应用:

 1 public class Demo04 {
 2     public static void main(String[] args) {
 3         //获取指定字符串中,大写字母、小写字母、数字的个数。
 4         String str="Zhai113";
 5         int big=0;
 6         int small=0;
 7         int num=0;
 8         for(int i=0;i<str.length();i++){
 9             char a=str.charAt(i);
10             if(a>='A'&&a<='Z'){
11                 big++;
12             }else if(a>='a'&&a<='z'){
13                 small++;
14             }else{
15                 num++;
16             }
17         }
18         System.out.println(big);
19         System.out.println(small);
20         System.out.println(num);
21         System.out.println("=========================");
22         //第一个字母转换成大写,其他字母转换成小写
23         String str2="oRAcLE";
24         String a1=str2.substring(0,1);
25         String a2=str2.substring(1);
26         System.out.println(a1.toUpperCase()+a2.toLowerCase());
27         System.out.println("=========================");
28         //查询出现“java”的次数。
29         String str3="hellojava,nihaojava,javazhenbang";
30         int count=0;
31         int index=-1;
32         while(str3.indexOf("java")!=-1){
33             count++;
34             str3=str3.substring(str3.indexOf("java")+1);
35     
36         }
37         System.out.println(count);
38     }
39 }

  如图:

      

StringBuffer类

  定义:

    StringBuffer str=new StringBuffer("你好啊");

  常用方法:

    1.相字符串缓冲区中添加字符串

      str.append("java").append(18).append(true);

    2.删除指定小字符串

      str.delete(3, 6);//包头不包尾

    3.插入字符串

      str.insert(3, "jack");  

    4.替换字符串

      str.replace(3, 8, "tom");

    5.反转字符串

      str.reverse();

  应用:

public static String toString_2(int[] arr) {
            //{34,12,89,68}变 [34,12,89,68]
        StringBuffer sb = new StringBuffer();        
        sb.append("[");
        for (int i = 0; i < arr.length; i++) {
            if(i!=arr.length-1){
                sb.append(arr[i]+",");
            }else{
                sb.append(arr[i]+"]");
            }
        }        
        return sb.toString();
    }
原文地址:https://www.cnblogs.com/zhai113/p/11626099.html