Java中的String類



1. String 簡介

  字符串,每一個字符串對象都是常量。API介紹


2. String 構造方法

  • String(byte[]):構造一個String對象,將指定字節數組中的數據轉化成字符串。
  • String(char[]):構造一個String對象,將指定字符數組中的數據轉化成字符串。

3. String 常用成員方法

3.1 判斷方法

方法名 描述
boolean equals(String) 判斷當前字符串與給定字符串是否相同,區分大小寫。
boolean equalsIgnoreCase(String) 判斷當前字符串與給定字符串是否相同,不區分大小寫。
boolean startWith(String) 判斷是否以給定字符串開頭。
boolean isEmpty() 判斷字符串是否爲空。

實例:

/**
 * 學習String類的判斷方法
 * | 方法名                           | 描述                                               |
 * | -------------------------------- | -------------------------------------------------- |
 * | boolean equals(String)           | 判斷當前字符串與給定字符串是否相同,區分大小寫。   |
 * | boolean equalsIgnoreCase(String) | 判斷當前字符串與給定字符串是否相同,不區分大小寫。 |
 * | boolean startWith(String)        | 判斷是否以給定字符串開頭                           |
 * | boolean isEmpty()                | 判斷字符串是否爲空                                 |
 */
public class Test {
    public static void main(String[] args) {
        String str1 = "abc";
        String str2 = "ABC";
        //equals(String):判斷相等,區分大小寫
        boolean b1 = str1.equals(str2);
        System.out.println("equals():" + b1);
        //equalsIgnoreCase(String):判斷相等,不區分大小寫
        boolean b2 = str1.equalsIgnoreCase(str2);
        System.out.println("equalsIgnoreCase():" + b2);
        //startWith():判斷以給定字符串開頭
        boolean b3 = str1.startsWith("a");
        System.out.println("startWith():" + b3);
        //isEmpty():判斷爲空
        String str3 = "";
        boolean b4 = str3.isEmpty();
        System.out.println("isEmpty():" + b4);
    }
}

運行結果:

equals():false
equalsIgnoreCase():true
startWith():true
isEmpty():true

3.2 獲取方法

方法名 描述
int length() 返回字符串長度。
char charAt(int index) 返回指定索引處的字符。
int indexOf(String) 返回指定字符第一次出現的字符串內的索引。
int lastIndexOf(String) 返回指定字符的最後一次出現的字符串中的索引。
String substring(int) 返回指定索引位置以及後面的全部字符。
String substring(int, int) 返回指定索引位置之間的字符,包含起始,不包含結尾,左閉右開區間。

實例:

/**
 * 學習String類的獲取方法
 * | int length()                     | 獲取當前字符串長度                                       |
 * | char charAt(int index)           | 返回char指定索引處的值                                   |
 * | int indexOf(String)              | 返回指定字符(串)第一次出現的索引                       |
 * | int lastIndexOf(String)          | 返回指定字符(串)最後一次出現的索引                     |
 * | String substring(int)            | 返回指定索引位置以及之後的字符串                         |
 * | String substring(int, int)       | 獲取從索引start位置(含)起至索引end位置(不含)的字符串 |
 */
public class Test {
    public static void main(String[] args) {
        //定義一個字符串
        String str = "This is a String!";
        //length():獲取長度
        System.out.println("length():"+str.length());//字符串長度
        //charAt(int index)
        char ch = str.charAt(1);//指定獲取第二個字符
        System.out.println("charAt():"+ch);
        //indexOf(String)
        int idx=str.indexOf('i');//第一次出現 i 的索引值
        System.out.println("indexOf(String):"+idx);
        //lastIndexOf(String)
        int idx2=str.lastIndexOf('i');//最後一次出現i的索引值
        System.out.println("lastIndexOf(String):"+idx2);
        //substring(int)
        String s1 = str.substring(5);//截取從索引5開始的所有字符
        System.out.println("substring(int):"+s1);
        //substring(int, int)
        String s2 = str.substring(5,11);//截取從索引[5,11)的字符,左閉右開。
        System.out.println("substring(int, int):"+s2);
    }
}

運行結果:

length():17
charAt():h
indexOf(String):2
lastIndexOf(String):13
substring(int):is a String!
substring(int, int):is a S

3.3 轉換方法

方法名 描述
byte[] getBytes() 將字符串轉換成字節數組。
char[] toCharArray() 將字符串轉換成字符數組。
static String valueOf() 將指定類型數據轉換成字符串
String replace(old,new) 將指定字符替換成新的字符
String[] split(String) 切割字符串,返回切割後的字符串數據,原字符串不變
String trim() 去掉首尾任意個空格字符,原字符串不變。

實例:

package com.base.F_StringClassStudy.demo3;

/**
 * 學習Spring類的轉換方法
 * | byte[] getBytes()       | 將字符串轉換成字節數組。                         |
 * | char[] toCharArray()    | 將字符串轉換成字符數組。                         |
 * | static String valueOf() | 將指定類型數據轉換成字符串                       |
 * | String replace(old,new) | 將指定字符替換成新的字符                         |
 * | String[] split(String)  | 切割字符串,返回切割後的字符串數據,原字符串不變 |
 * | String trim()           | 返回一個字符串,其值爲此字符串,並刪除任何前導和尾隨空格。|
 */
public class Test {
    public static void main(String[] args) {
        String s1 = "abc";
        //byte[] getBytes()
        System.out.println("getBytes():");
        byte[] bys = s1.getBytes();     //將字符串轉換成字節數組
        for (int i = 0; i < bys.length; i++) {
            System.out.print(bys[i]);
            if (i < bys.length - 1) System.out.print(",");
        }
        System.out.println("\n----------------分割線--------------");
        //char[] toCharArray()
        System.out.println("toCharArray():");
        char[] chs = s1.toCharArray();      //將字符串轉換成字符數組。
        for (int i = 0; i < chs.length; i++) {
            System.out.print(chs[i]);
            if (i < chs.length - 1) System.out.print(",");
        }
        System.out.println("\n----------------分割線--------------");
        //static String valueOf()
        System.out.println("valueOf():");
        String s2 = String.valueOf(123);    //將指定類型數據轉換成字符串
        System.out.println(s2+4);
        System.out.println("----------------分割線--------------");
        //String replace(old,new)
        System.out.println("replace():");
        String s4 = "abc abc abc";
        String s5 = s4.replace('b','d');    //將字符串中的 b 替換成 d
        System.out.println(s5);
        System.out.println("\n----------------分割線--------------");
		//String[] split(String)       
        System.out.println("split():");
        String[] arr = s4.split("");        //按空格字符來切割字符串
        for (int i =0;i<arr.length;i++){
            System.out.println(arr[i]);
        }
        System.out.println("\n----------------分割線--------------");
        //String trim()
        System.out.println("String trim():");
        String s6 = " a b c  ";
        String s7 = s6.trim();          // 去掉首尾的空格字符
        System.out.println("s6:"+s6);
        System.out.println("s7:"+s7);
    }
}

運行結果:

getBytes():
97,98,99
----------------分割線--------------
toCharArray():
a,b,c
----------------分割線--------------
valueOf():
1234
1234
----------------分割線--------------
replace():
adc adc adc
----------------分割線--------------
split():
a
b
c
 
a
b
c
 
a
b
c

----------------分割線--------------
String trim():
s6: a b c  
s7:a b c



4. StringBuilder和StringBuffer 簡介

  可變字符序列,用於構造字符串對象,內部使用自動擴展的數組操作字符串數據。StringBuilder和StringBuffer使用相同的 API( StringBuilde和StringBuffer中的方法相同 )。

5. StringBuilder構造方法

  • StingBuilder():構造一個空的StringBuilder容器

  • StringBuilder(String):構造一個StringBuilder容器,並添加指定字符串。

6. 常用成員方法

方法名 描述
StringBuilder append() 將任意數據添加到StringBuilder容器中
String toString() 將當前StringBuilder容器轉換成字符串

實例:

/**
 * 學習StringBuilder和StringBuffer
 * | StringBuilder append() | 將任意數據添加到StringBuilder容器中,返回自身 |
 * | String toString()      | 將當前StringBuilder容器轉換成字符串 |
 */
public class Test {
    public static void main(String[] args) {
        //構造方法和
        StringBuilder str1 = new StringBuilder();
        //StringBuilder  append():添加字符abc
        StringBuilder str2 = str1.append("adc");      
        System.out.println("str1:" + str1);
        System.out.println("str2:" + str2);
        System.out.println("-----------------分割線-----------------");
        StringBuilder str3 = new StringBuilder("abc");
        System.out.println("str3:"+str3);
        //String toString()
        System.out.println("-----------------分割線-----------------");
        StringBuilder str4 = new StringBuilder();
        str4.append("This ");
        str4.append("is a ");
        str4.append("test!");
        System.out.println("str4:"+str4);
        //轉換成字符串
        String s = str4.toString();
        System.out.println("字符串s:"+str4);
    }
}

運行結果:

str1:adc
str2:adc
-----------------分割線-----------------
str3:abc
-----------------分割線-----------------
str4:This is a test!
字符串s:This is a test!


時間:2019年10月25日18:26:44


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