位置:首頁 > Java技術 > Java基礎教程 > Java String類

Java String類

字符串,它被廣泛應用於Java編程,是一個字符序列。在Java編程語言中,字符串是對象。

Java平台提供了String類來創建和操作字符串。

創建字符串:

最直接的方式來創建一個字符串是這樣寫的:

String greeting = "Hello world!";

每遇到一個字符串在代碼中,編譯器在這種情況下創建一個String對象,如:"Hello world!'.

任何其他對象可以通過使用new關鍵字,並構造函數創建String對象。 String類有11構造函數提供允許使用不同的來源,如字符數組字符串的初始值。

public class StringDemo{

   public static void main(String args[]){
      char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.'};
      String helloString = new String(helloArray);  
      System.out.println( helloString );
   }
}

這將產生以下結果:

hello.

注: String類是不可變的,因此,一旦創建了String對象那麼是不能改變的。如果有必要修改字符的字符串,那麼應該使用 String Buffer & String Builder 類.

String 長度:

用於獲取有關對象的信息的方法稱為存取方法。可以使用字符串使用一個訪問器是length()方法,它返回包含在字符串對象中的字符數。

下麵的兩行代碼被執行之後,len等於17:

public class StringDemo {

   public static void main(String args[]) {
      String palindrome = "Dot saw I was Tod";
      int len = palindrome.length();
      System.out.println( "String Length is : " + len );
   }
}

這將產生以下結果:

String Length is : 17

連接字符串:

String類包括用於連接兩個字符串的方法:

string1.concat(string2);

這返回一個string1 與string2 添加到它在最後一個新的字符串。還可以使用concat()方法連接字符串,如:

"My name is ".concat("Zara");

字符串比較常用連接在一起使用“ + ” 運算符,如:

"Hello," + " world" + "!"

這將產生:

"Hello, world!"

看看下麵的例子:

public class StringDemo {

   public static void main(String args[]) {
      String string1 = "saw I was ";
      System.out.println("Dot " + string1 + "Tod");
   }
}

這將產生以下結果:

Dot saw I was Tod

創建格式化字符串:

已經有 printf() 和 format() 方法來打印輸出格式的數字。 String類有一個等價類的方法format(),它返回一個String對象,而不是一個的PrintStream對象。

使用字符串的靜態format() 方法允許創建可重複使用的格式化字符串,而不是一次一次的print語句。例如,代替方法如下:

System.out.printf("The value of the float variable is " +
                  "%f, while the value of the integer " +
                  "variable is %d, and the string " +
                  "is %s", floatVar, intVar, stringVar);

可以這樣寫:

String fs;
fs = String.format("The value of the float variable is " +
                   "%f, while the value of the integer " +
                   "variable is %d, and the string " +
                   "is %s", floatVar, intVar, stringVar);
System.out.println(fs);

String 方法:

這裡是由String類支持的方法列表:

SN 方法及描述
1 char charAt(int index) 
返回指定索引處的字符。
2 int compareTo(Object o) 
比較這個字符串與另一個對象。
3 int compareTo(String anotherString)
比較兩個字符串的字典順序。
4 int compareToIgnoreCase(String str) 
比較兩個字符串按字典順序,不區分大小寫的差異。
5 String concat(String str)
將指定的字符串串連到這個字符串的結尾。
6 boolean contentEquals(StringBuffer sb) 
返回true當且僅當該字符串代表相同的字符序列作為指定的StringBuffer。
7 static String copyValueOf(char[] data) 
返回表示所指定的數組中的字符序列的字符串。
8 static String copyValueOf(char[] data, int offset, int count)
返回表示所指定的數組中的字符序列的字符串。
9 boolean endsWith(String suffix) 
測試此字符串是否以指定的後綴結束。
10 boolean equals(Object anObject)
比較此字符串與指定的對象。
11 boolean equalsIgnoreCase(String anotherString)
比較這個字符串到另一個字符串,忽略大小寫的考慮。
12 byte getBytes() 
將此String解碼使用平台的默認字符集,並將結果存儲到一個新的字節數組中的字節序列。
13 byte[] getBytes(String charsetName
將此String解碼使用指定的字符集的字節序列,並將結果存儲到一個新的字節數組。
14 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
複製字符從這個字符串到目標字符數組。
15 int hashCode()
返回一個哈希代碼這個字符串。
16 int indexOf(int ch) 
返回此字符串指定字符第一次出現處的索引。
17 int indexOf(int ch, int fromIndex) 
返回索引這個字符串中指定字符第一次出現處,指定索引處開始搜索。
18 int indexOf(String str)
返回此字符串指定子字符串的第一次出現處的索引。
19 int indexOf(String str, int fromIndex)
返回索引這個字符串中指定子字符串的第一次出現處,從指定的索引處。
20 String intern()
返回字符串對象的規範化表示。
21 int lastIndexOf(int ch) 
返回此字符串指定字符最後一次出現處的索引。
22 int lastIndexOf(int ch, int fromIndex) 
返回此字符串指定子字符串的最右邊出現處的索引。
23 int lastIndexOf(String str)
返回此字符串指定子字符串的最右邊出現處的索引。
24 int lastIndexOf(String str, int fromIndex) 
返回索引這個字符串中指定子字符串的最後出現處,向後搜索指定的索引開始處。
25 int length() 
返回此字符串的長度。
26 boolean matches(String regex)
通知此字符串是否給定的正則表達式匹配。
27 boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) 
測試兩個字符串的區域等於。
28 boolean regionMatches(int toffset, String other, int ooffset, int len)
測試兩個字符串的區域都是相等的。
29 String replace(char oldChar, char newChar)
返回從newChar更換oldChar所有出現在此字符串中產生一個新的字符串。
30 String replaceAll(String regex, String replacement
替換此字符串中給定的正則表達式與給定替換相匹配的每個子字符串。
31 String replaceFirst(String regex, String replacement) 
替換此字符串匹配給定的正則表達式給定替換第一個子字符串.
32 String[] split(String regex) 
分割這個字符串圍繞給定的正則表達式匹配.
33 String[] split(String regex, int limit) 
分割這個字符串圍繞給定的正則表達式匹配。
34 boolean startsWith(String prefix)
測試此字符串是否以指定的前綴開頭。
35 boolean startsWith(String prefix, int toffset)
測試此字符串是否以指定索引開始的指定前綴開始。
36 CharSequence subSequence(int beginIndex, int endIndex)
返回一個新的字符序列,這個序列的子序列。
37 String substring(int beginIndex)
返回一個新的字符串,它是此字符串的一個子字符串。
38 String substring(int beginIndex, int endIndex)
返回一個新的字符串,它是此字符串的一個子字符串。
39 char[] toCharArray() 
這個字符串轉換為一個新的字符數組。
40 String toLowerCase()
將所有在此字符串中的字符的使用默認語言環境的規則小寫。
41 String toLowerCase(Locale locale)
將所有在此字符串中的字符來使用給定Locale的規則小寫。
42 String toString()
這個對象(它已經是一個字符串!)返回字符串形式(這裡是自己本身)。
43 String toUpperCase() 
轉換所有的字符在使用默認語言環境的規則將此String為大寫。
44 String toUpperCase(Locale locale) 
轉換所有的字符使用給定Locale的規則將此String為大寫。
45 String trim() 
返回字符串的一個副本,開頭和結尾的空格去除。
46 static String valueOf(primitive data type x) 
返回傳遞的數據類型參數的字符串表示形式。