Java語言基礎常用API(3)之String類

1、String類使用

java.lang.String 類代表字符串,此類不需要導入。

創建字符串的常見3+1種方式:

public class demo01 {
    public static void main(String[] args) {

//三種構造方法:
        //1.使用空參構造:創建一個空白的字符串,不含任何內容
        //初始化String對象,表示空字符序列
        String str1 = new String();
        System.out.println("第一個字符:" + str1);

        //2.根據字符數組創建字符串
        char [] charArray = {'A','B','C'};
        String str2 = new String(charArray);
        System.out.println("第二個字符:" + str2);

        //3.根據字節數組創建字符串
        byte [] byteArray = {105,100,116};
        String str3 = new String(byteArray);
        System.out.println("第三個字符:" + str3);

// 直接創建
        String str4 = "Hello";
        System.out.println("第四個字符:" + str4);
    }
}

執行結果:
在這裏插入圖片描述

2、常用方法

1.比較方法

public boolean equals (Object anObject) :將此字符串與指定對象進行比較。
public boolean equalsIgnoreCase (String anotherString) :將此字符串與指定對象進行比較,忽略大小寫

代碼演示:

public class demo02 {

    public static void main(String[] args) {

//       1.equals:字符比較,區分字母大小寫
        String str1 = "Hello";
        String str2 = "Hello";
        char[] charArray = {'H','e','l','l','o'};
        String str3 = new String(charArray);

        System.out.println(str1.equals(str2));//true
        System.out.println(str2.equals(str3));//true
        System.out.println(str3.equals("Hello"));//true

        //equal方法是區分大小寫的
        String str4 = "hello";
        System.out.println(str1.equals(str4));//false

        //空字符的時候建議放後面
        String str5 = null;
        System.out.println("abc".equals(str5));//推薦:false
//        System.out.println(str5.equals("abc"));//空指針異常

//        2.equalsIgnoreCase:字符比較,不區分大小寫

        String strA = "Java";
        String strB = "java";
        System.out.println(strA.equals(strB));//false
        System.out.println(strA.equalsIgnoreCase(strB));//true
    }
}

2.獲取方法

public int length() :獲取字符串中含有的字符個數,即字符串長度;
public String concat (String str) :將指定的字符串連接到該字符串的末尾。
public char charAt (int index) :獲取指定索引位置的單個字符。(索引從0開始)
public int indexOf (String str) :查找指定字符串在本字符串中首次出現的索引位置,如果沒有返回-1值。

代碼演示:

public class demo03 {
    public static void main(String[] args) {
        //1.獲取字符串的長度
        int length = "jjsdsdcfdsfdfdcsdffcssa".length();
        System.out.println("該段字符串長度爲:" + length);

        //2.拼接字符串
        String str1 = "Hello, ";
        String str2 = "World !";
        String str3 = str1.concat(str2);
        System.out.println(str3);

        //3.獲取指定索引位置的單個字符
        char ch = "lsjndhdnsjkemd".charAt(9);
        System.out.println("該段字符串的第9號索引位置的字符是:" + ch);

        //4.查找指定字符串在本字符串中首次出現的索引位置,若無則返回:-1
        String original = "jknndhdsmbjsthdsmtool";
        int index = original.indexOf("hdsm");
        System.out.println("'hasm'在該段字符串中首次出現的爲索引值:" + index);
        System.out.println(original.indexOf("nihao"));//-1
    }
}

執行結果:
在這裏插入圖片描述
3.截取方法

public String substring (int index):截取從參數位置一直到字符串末尾的一段,返回新的字符串;
public String substring(int begin, int end): 截取從begin開始,一直到end結束,中間的字符串;
備註:[begin,end),包含左邊,不包含右邊。

public class demo04 {
    public static void main(String[] args) {

         //截取到末尾
        String str1 = "HelloWorld!";
        String str2 = str1.substring(5);
        System.out.println(str2);//World

        //截取中間部分
        String str3 = str1.substring(4,7);
        System.out.println(str3);//oWo
    }
}

4.轉換方法

public char[] toCharArray () :將此字符串轉換爲字符數組。
public byte[] getBytes () :使用平臺的默認字符集將該 String編碼轉換爲字節數組。
public String replace (CharSequence target, CharSequence replacement) :將與target匹配的字符串使
用replacement字符串替換。

代碼演示:

public class demo05 {
    public static void main(String[] args) {

        //1.轉換爲字符數組
        char[] chars = "Hello".toCharArray();
        System.out.println(chars[1]);//e
        System.out.println(chars.length);

        //2.轉換爲字節數組
        byte[] bytes = "Hello".getBytes();
        for (int i = 0; i < bytes.length; i++) {
            System.out.println(bytes[i]);
        }

        //3.字符串的內容替換
        String str1 = "H0w d0 y0u d0?";
        String str2 = str1.replace("0","o");
        System.out.println(str1);
        System.out.println(str2);
    }
}

執行結果:在這裏插入圖片描述
5.分割字符串的方法

public String[] split(String regex) :將此字符串按照給定的regex(規則)拆分爲字符串數組。

代碼演示:

public class demo06 {

    public static void main(String[] args) {

        //逗號
        String str1 = "aaa,bbb,ccc";
        String[] array1 = str1.split("," );
        for (int i = 0; i < array1.length; i++) {
            System.out.println(array1[i]);
        }

        //空格
        String str2 = "ddd eee fff";
        String[] array2 = str2.split(" " );
        for (int i = 0; i < array2.length; i++) {
            System.out.println(array2[i]);
        }

        //英文句點“.”進行切分,必須寫“\\.”(兩個反斜槓)
        String str3 = "ggg.hhh.iii";
        String[] array3 = str3.split("\\." );
        for (int i = 0; i < array3.length; i++) {
            System.out.println(array3[i]);
        }
    }
}

執行結果:
在這裏插入圖片描述
6.練習

題目:
鍵盤輸入一個字符串,並且統計其中各種字符出現的次數。
種類:大寫字母、小寫字母、數字、其他;

代碼實現:

import java.util.Scanner;

public class demo07 {

    public static void main(String[] args) {

        //1.獲取鍵盤輸入的一個字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入一個字符串:");
        String input = sc.next();

        //2.定義與初始化統計變量
        int countUpper = 0;
        int countLower = 0;
        int countNumber = 0;
        int countOther = 0;

        //3.遍歷字符串,進行統計
        //字符串轉換爲字符數組
        char[] charArray = input.toCharArray();
        for (int i = 0; i < charArray.length; i++) {
            //讀取當前的單個字符
            char ch = charArray[i];
            if ('A' <= ch && ch <= 'Z' ){
                countUpper ++;
            }else if('a' <= ch && ch <='z'){
                countLower ++;
            }else if('0' <= ch && ch <='9'){
                countNumber ++;
            }else {
                countOther ++;
            }
        }

        //4.打印
        System.out.println("大寫字母有:" + countUpper +"個");
        System.out.println("小寫字母有:" + countLower +"個");
        System.out.println("數字有:" + countNumber +"個");
        System.out.println("其他字符有:" + countOther +"個");
    }

}

運行結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章