第五章:面向對象基礎——String類的常用方法。

本章目標

  • 了解String類中的常用方法
  • 了解API文檔的查找方法

1、具體內容

一門語言除了語言本身要非常優秀之外,另外最主要的就是要有語言的使用文檔,在文檔中明確地為用戶列出了全部的類及相關的操作方法及說明。


Split()和replaceAll()這兩個方法是需要正則支持的,關于正則的應用。

1.1、字符數組與字符串

一個字符串可以變為一個數組。同樣,也可以把一個字符數組,變為一個字符串。
在String類中提供了以下的操作方法:

  • 將字符串變為字符數組:
    public char[] toCharArray()
  • 字符數組變為字符串:
    • public String(char[] value)
    • public String(char[] value, int offset, int count)
public class StringAPIDemo01{
    public static void main(String args[]){
        String str1 = "hello" ;         // 定義字符串
        char c[] = str1.toCharArray() ; // 將一個字符串變為字符數組
        for(int i=0;i<c.length;i++){    // 循環輸出
            System.out.print(c[i] + "、") ; 
        }
        System.out.println("") ;        // 換行
        String str2 = new String(c) ;   // 將全部的字符數組變為String
        String str3 = new String(c,0,3) ;   // 將部分字符數組變為String
        System.out.println(str2) ;      // 輸出字符串
        System.out.println(str3) ;      // 輸出字符串
    }
};
輸出結果:
h、e、l、l、o、
hello
hel

1.2、從字符串中取出指定位置的字符

如果要想使用此操作,則肯定此方法的返回值是一個char類型。public char charAt(int index)

public class StringAPIDemo02{
    public static void main(String args[]){
        String str1 = "hello" ;         // 定義String對象
        System.out.println(str1.charAt(3)) ;    // 取出字符串中第四個字符
    }
};
輸出結果:
l

1.3、字符串與byte數組的轉換

byte數組(字節數組),在一般的IO操作中會經常使用到。
在String類中提供了以下的方法可以進行字符串與字節數組間的轉換:

  • 字符串變為字節數組:
    public byte[] getBytes()
  • 將一個字符數組變為字符串:
    • 將全部字節數組變為String:
      public String(byte[] bytes)
    • 將部分字節數組變為String:
      public String(byte[] bytes, int offset, int length)
public class StringAPIDemo03{
    public static void main(String args[]){
        String str1 = "hello" ;         // 定義字符串
        byte b[] = str1.getBytes() ;    // 將字符串變為byte數組
        System.out.println(new String(b)) ; // 將全部的byte數組變為字符串
        System.out.println(new String(b,1,3)) ; // 將部分的byte數組變為字符串
    }
};
輸出結果:
hello
ell

1.4、取得一個字符串的長度

要想取得字符串中的長度:public int length()

public class StringAPIDemo04{
    public static void main(String args[]){
        String str1 = "hello LiXingHua" ;       // 定義字符串變量
        System.out.println("\""+str1+"\"的長度為:"+str1.length()) ;
    }
};
輸出結果:
"hello LiXingHua"的長度為:15

注意
在操作數組中可以使用“數組名稱.length”,有些朋友就習慣在字符串操作的地方也是有“字符串.length”的格式(str1.length)。

1.5、查找指定的字符串是否存在

在實際操作中,經常會判斷一個字符串是否會存在某些內容,此時就可以使用以下的方法:

  • 從頭開始查找:
    public int indexOf(String str)
  • 從指定位置開始查找:
    public int indexOf(String str, int fromIndex)

查找的時候方法的返回值是一個int類型的數據,此數據表示的是一個字符串的具體位置,如果沒有查找到此字符串,則返回“-1”.

public class StringAPIDemo05{
    public static void main(String args[]){
        String str1 = "abcdefgcgh" ;                // 聲明字符串
        System.out.println(str1.indexOf("c")) ;     // 查到返回位置
        System.out.println(str1.indexOf("c",3)) ;   // 查到返回位置,從第4個位置開始查找
        System.out.println(str1.indexOf("x")) ;     // 沒有查到返回-1
    }
};
輸出結果:
2
7
-1

1.6、去掉空格

如果假設一些信息是由用戶輸入的話,則有可能出現多余的空格,在這種操作中就可以使用trim()去掉字符串的左右空格,但是字符串中間的空格是不可能去掉的。

public class StringAPIDemo06{
    public static void main(String args[]){
        String str1 = "    hello    " ;     // 定義字符串
        System.out.println(str1.trim()) ;   // 去掉左右空格后輸出
    }
};
輸出結果:
hello

1.7、字符截取

從一個指定的字符串中取出里面部分內容,使用方法:

  • 從指定位置開始一直截取到結束位置:
    public String substring(int beginIndex)
  • 截取指定范圍的字符串:
    public String substring(int beginIndex, it endIndex)
public class StringAPIDemo07{
    public static void main(String args[]){
        String str1 = "hello world" ;       // 定義字符串
        System.out.println(str1.substring(6)) ; // 從第7個位置開始截取
        System.out.println(str1.substring(0,5)) ; // 截取0~5個位置的內容
    }
};
輸出結果:
world
hello

1.8、拆分字符串

如果現在需要按指定的字符串去拆分一個字符串的話,則使用:public String[] split(String regex)

c class StringAPIDemo08{
    public static void main(String args[]){
        String str1 = "hello world" ;       // 定義字符串
        String s[] = str1.split(" ") ;      // 按空格進行字符串的拆分
        for(int i=0;i<s.length;i++){        // 循環輸出
            System.out.println(s[i]) ;
        }
    }
};
輸出結果:
hello
world

1.9、大小寫轉換

此功能在一般的開發語言中都會存在,將一個大寫的字符串全部字母變為小寫,或者將小寫的字符串,全部字母變為大寫:

  • 小寫變大寫:
    public String toUpperCase()
  • 大寫邊小寫:
    public String toLowerCase()
c class StringAPIDemo09{
    public static void main(String args[]){
        System.out.println("將\"hello world\"轉成大寫:" + "hello world".toUpperCase()) ;
        System.out.println("將\"HELLO WORLD\"轉成小寫:" + "HELLO WORLD".toLowerCase()) ;
    }
};
輸出結果:
將"hello world"轉成大寫:HELLO WORLD
將"HELLO WORLD"轉成小寫:hello world

1.10、判斷是否以指定的字符串開頭或結尾

在String中可以使用以下的兩個方法完成:

  • 判斷是否以指定的字符串開頭:
    public boolean startsWith(String prefix)
  • 判斷是否以指定的字符串結尾:
    public boolean endsWith(String suffix)
public class StringAPIDemo10{
    public static void main(String args[]){
        String str1 = "**HELLO" ;           // 定義字符串
        String str2 = "HELLO**" ;           // 定義字符串
        if(str1.startsWith("**")){          // 判斷是否以“**”開頭
            System.out.println("(**HELLO)以**開頭") ;
        }
        if(str2.endsWith("**")){            // 判斷是否以“**”結尾
            System.out.println("(HELLO**)以**結尾") ;
        }
    }
};
輸出結果:
(**HELLO)以**開頭
(HELLO**)以**結尾

1.11、不區分大小寫的比較

在String類中,equals()方法是可以用來進行字符串比較的,但是此種比較方法只能針對于大小寫完全一樣的字符串進行比較,如果現在要是想進行不區分大小寫的比較,則可以使用以下的方法:

  • public boolean equalsIgnoreCase(StringanotherSstring)
public class StringAPIDemo11{
    public static void main(String args[]){
        String str1 = "HELLO" ;         // 定義字符串
        String str2 = "hello" ;         // 定義字符串
        System.out.println("\"HELLO\" equals \"hello\" " + str1.equals(str2)) ;
        System.out.println("\"HELLO\" equalsIgnoreCase \"hello\" "
                + str1.equalsIgnoreCase(str2)) ;    // 不區分大小寫的比較
    }
};
輸出結果:
"HELLO" equals "hello" false
"HELLO" equals "hello" true

1.12、字符串替換功能

在String類中提供了以下的方法用于字符串的替換操作:

  • public String replaceAll(String regex, String replacement)
public class StringAPIDemo12{
    public static void main(String args[]){
        String str = "hello" ;          // 定義字符串
        String newStr = str.replaceAll("l","x") ;   // 現在將所有的l替換成x
        System.out.println("替換之后的結果:" + newStr) ;
    }
};
輸出結果:
替換之后的結果:hexxo

2、總結

通過實例簡單介紹了整個String類中最常用的操作方法

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容