Java - String 類常用操作總結

可變字符串: StringBuffer

不可變字符串:String

 

StringBuffer類:

public class StringBufferTest {

    public static void main(String[] args) {
        //1.創建可變字符串
        StringBuffer strBuffer = new StringBuffer();
        System.out.println(strBuffer);
        //2.拼接字符串
        strBuffer.append("少年啊!");
        System.out.println(strBuffer);
        strBuffer.append("你好帥啊!");
        //3.按照下標插入字符串
        strBuffer.insert(0, "啊哈!");
        System.out.println(strBuffer);
        //4.替換字符串
        strBuffer.replace(9, 10, "傻乎乎");
        System.out.println(strBuffer);
        //5.刪除字符串
        strBuffer.delete(9, 12);
        System.out.println(strBuffer);
        //6.字符串反轉
        strBuffer.reverse();
        System.out.println(strBuffer);
        /*
         * 面試題:String和StringBuffer的區別?
         * String:不可變字符串,對其做的任何替換,查找,修改等操作都是
         * 拷貝了原字符串,對拷貝的副本進行操作並返回!
         * StringBuffer:可變字符串,對其做的增刪改查操作都是直接修改
         * 了原字符串!當然也可以接受返回值,是修改後的結果!
         */
        String s3 = "hahaha";
        String s4 = s3.toUpperCase();
        System.out.println(s3);
        System.out.println(s4);

        //所以! 可變字符串---->不可變字符換
        //方式1
        String s1 = new String(strBuffer);
        System.out.println(s1);
        //方式2
        String s2 = strBuffer.toString();
        System.out.println(s2);

    }
}

 

String 類:



public class text {

    public static void main(String[] args) {
        //String  是系統類!所以建文件名字需要注意!

        //1.字符創的創建
        //方式1:直接賦值
        String str1 = "hello world";
        //方式2:通過字符數組創建字符串
        char[] data = {'y', 'o', 'u'};
        String str2 = new String(data);
        System.out.println(str2);
        //方式3:通過字符數組的某一部分創建字符串
        char[] charArray = {'l', 'o', 'v', 'e'};
        String str3 = new String(charArray, 2, 1);
        //參數2:是從哪個字符開始    參數3:是截取幾個(長度)
        System.out.println(str3);
        //方式4:通過字符創建另一個字符串
        String str4 = new String(str1);//注意經常用於可變轉不可變字符串
        System.out.println(str4);

        //2.字符串比較
        //方式1: ==  比較的是字符串的地址
        String str5 = "haha"; //常量區
        String str6 = new String("haha");// 堆區
        System.out.println(str5 == str6); //false
        String str7 = "haha";
        System.out.println(str5 == str7); //true
        //方式2: equals 只比較值
        System.out.println(str5.equals(str6));// true
        System.out.println(str5.equals(str7));// true
        //方式3:equalsIgnoreCase 忽略大小寫
        str6 = "HaHa";
        System.out.println(str5.equalsIgnoreCase(str6));

        //3.判斷字符串的前綴和後綴
        //endWith: 判斷字符串以..結尾
        String str8 = "變形金剛.avi";
        System.out.println(str8.endsWith("vi"));
        //startWith: 判斷字符串以..開頭
        String str9 = "前車之鑑,後車之師";
        System.out.println(str9.startsWith("前車"));

        //compareTo: 字符串比較,是逐個字符進行比較,返回值是ASCII值
        str8 = "ABC";
        str9 = "ABc";
        System.out.println(str8.compareTo(str9));
        //compareToIgnoreCase 忽略大小寫
        System.out.println(str8.compareToIgnoreCase(str9));

        //4.字符串的長度  length
        String str10 = "you are beautiful";
        System.out.println(str10.length());
        str10 = "好好學習哇!";
        System.out.println(str10.length());

        //5.判斷字符串是否爲空
        String str11 = null;
        String str12 = "";
        //禁止 null調用任何對象的方法
        if(str11 != null && str11.length() != 0) {
            System.out.println(str11 + "不是空字符串");
        }else {
            System.out.println(str11 + "是空字符串");
        }
        //isEmpty()  判斷是否爲空 如果爲空則爲true
        System.out.println(str12.isEmpty());//true
        //另一種方式 判斷空串
        if(str12 != null && !str12.isEmpty()) {
            System.out.println("不是空字符串");
        }else {
            System.out.println("是空字符串");
        }

        //6.字符串轉換
        String str13 = "lucky dog";
        //大寫toUpperCase()
        System.out.println(str13.toUpperCase());
        System.out.println(str13);//原字符串沒有變換
        //小寫 toLowerCase()
        str13 = "Lucky Dog";
        String lowerStr = str13.toLowerCase();
        System.out.println(lowerStr);
        System.out.println(str13);
        //字符串轉數組
        char[] charArr = str13.toCharArray();
        for(int i = 0; i < charArr.length; i++) {
            System.out.println(charArr[i]);
        }
        //轉其他類型
        int a = 5566;
        //方式1:拼接空字符串
        String s1 = a + "";
        System.out.println(s1);
        //方式2: String.valueOf(數據)
        String s2 = String.valueOf(a);
        //valueOf(此處基本數據類型皆可轉換)
        //字符串轉其他類型
        String s3 = "2020520";
        //方式1:其他數據類型.valueOf(字符串) 即可轉換
        int b = Integer.valueOf(s3);
        double c = Double.valueOf(s3);
        float d = Float.valueOf(s3);
        //方式2: 其他類型.parse其他類型(字符串)
        long e = Long.parseLong(s3);
        String s4 = "true";
        boolean f = Boolean.parseBoolean(s4);
        /*int float long 等屬於基本數據類型(參照C語言)
         * Integer Double Float Boolean 它們是Java中的包裝類型!
         * 是爲了封裝一些方法而定義的類!
         */

        //7.字符串拼接
        String s5 = "you see see you! ";
        String s6 = "one day day!";
        //方式1: +
        System.out.println(s5 + s6);
        //方式2: concat
        String s7 = s5.concat(s6);
        System.out.println(s7);

        //8.字符串查找
        String s8 = "大學生活好啊!好嗎?你說好就好!";
        //方式1:indexOf()正向查找,返回第一次出現的位置,找不到就返回-1
        System.out.println(s8.indexOf("好呀"));
        System.out.println(s8.lastIndexOf("好"));//最後一次出現的位置
        System.out.println(s8.indexOf("好", 5));
        //方式2:contains 是否包含  boolean類型返回值
        System.out.println(s8.contains("生活好"));

        //9.獲取字符串的一部分
        String str = "矮是什麼感覺?就是所有人看見我都擡不起頭";
        //方式1: charAt() 通過下標  獲取某個字符
        System.out.println(str.charAt(2));
        //方式2: substring()
        System.out.println(str.substring(7));
        System.out.println(str.substring(10, 15));

        //10.替換字符串
        String s9 = "瘦,走路是什麼感覺?應該就是走路都得扶着電線杆";
        //方式1:replace() 就是把字符串中所有匹配到的字符串進行替換
        System.out.println(s9.replace("走路", "颳風"));
        //方式2:replaceFirst() 只替換第一個
        System.out.println(s9.replaceFirst("走路", "放屁"));

        //11.分割字符串  就是按照某一個字符 將字符串切成數組
        // \\轉義字符
        String s10 = "www|cctv|com";
        String[] strArray = s10.split("\\|");
        for(int i = 0; i < strArray.length; i++) {
            System.out.println(strArray[i]);
        }
        s10 = "www.cctv|com";
        //  split(" | ")  單豎槓 是或者! 所以才需要添加\\轉義
        strArray = s10.split("\\.|\\|");
        for(int i = 0; i < strArray.length; i++) {
            System.out.println(strArray[i]);
        }

        //12. 去除收尾空格 trim
        String s11 = " 哈哈";
        System.out.println(s11);
        System.out.println(s11.trim());

        //練習: "財色兼收"  截個'財'  截個'色'
        String s12 = "財色兼收";
        System.out.println(s12.charAt(0) + " " + s12.charAt(1));
        System.out.println(s12.substring(0,1) + " " + s12.substring(1, 2));

        //練習:定義一段英文字符串, 使用以上所學將這
        //一段英文改爲每個單詞首字母大寫
        String s = "you see see you! one day day";
        String[] sArray = s.split(" ");
        String newStr = "";
        for(int i = 0; i < sArray.length; i++) {
            String firstChar = String.valueOf(sArray[i].charAt(0));
//			System.out.println(firstChar);
            String upperStr = firstChar.toUpperCase();
            System.out.println(upperStr);
            //替換
            String firstUppercase = sArray[i].replace(firstChar, upperStr);
            newStr = newStr + firstUppercase + " ";
        }
        System.out.println(newStr);


    }

}

 

發佈了424 篇原創文章 · 獲贊 102 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章