字符串,它被廣泛應(yīng)用于 Java 編程,是一個字符序列。在 Java 編程語言中,字符串是對象。
Java 平臺提供了 String 類來創(chuàng)建和操作字符串。
最直接的方式來創(chuàng)建一個字符串是這樣寫的:
String greeting = "Hello world!";
當(dāng)你創(chuàng)建一個字符串時,編譯器在這種情況下用它的值創(chuàng)建一個 String 對象,如:"Hello world!'。
任何其他對象可以通過使用 new 關(guān)鍵字,并通過構(gòu)造函數(shù)創(chuàng)建 String 對象。 String 類有11種構(gòu)造函數(shù)提供使用不同類型的字符串的初始值,如一個字符數(shù)組。
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 );
}
}
這將產(chǎn)生以下結(jié)果:
hello.
注 String 類是不可變的,因此,一旦創(chuàng)建了 String 對象那么是不能改變的。如果需要大量修改字符的字符串,那么應(yīng)該使用 StringBuffer & StringBuilder 類。
用于獲取有關(guān)對象的信息的方法稱為存取方法??梢院妥址黄鹗褂玫囊粋€存取方法是 length() ,它返回包含在字符串對象中的字符數(shù)。
下面的兩行代碼被執(zhí)行之后,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 );
}
}
這將產(chǎn)生以下結(jié)果:
String Length is : 17
String類包括用于連接兩個字符串的方法:
string1.concat(string2);
這返回一個新的字符串,即在 string1 結(jié)尾處添加 string2。還可以使用 concat()方法連接字符串,如:
"My name is ".concat("Zara");
字符串更常使用 “ + ” 運(yùn)算符連接在一起,如:
"Hello," + " world" + "!"
這將產(chǎn)生:
"Hello, world!"
看看下面的例子:
public class StringDemo {
public static void main(String args[]) {
String string1 = "saw I was ";
System.out.println("Dot " + string1 + "Tod");
}
}
這將產(chǎn)生以下結(jié)果:
Dot saw I was Tod
已經(jīng)有 printf() 和 format() 方法來打印輸出格式的數(shù)字。 String 類有一個等價的方法 format(),它返回一個 String 對象,而不是一個 PrintStream 對象。
使用字符串的靜態(tài) format() 方法允許創(chuàng)建可重復(fù)使用的格式化字符串,而不是一次性的 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 類支持的方法列表:
SN | 方法及描述 |
---|---|
1 | char charAt(int index) 返回指定索引處的字符。 |
2 | int compareTo(Object o) 將這個字符串與另一個對象比較。 |
3 | int compareTo(String anotherString) 比較兩個字符串的字典順序。 |
4 | int compareToIgnoreCase(String str) 比較兩個字符串按字典順序,不區(qū)分大小寫的差異。 |
5 | String concat(String str) 將指定的字符串串連到這個字符串的結(jié)尾。 |
6 | boolean contentEquals(StringBuffer sb) 返回true當(dāng)且僅當(dāng)該字符串代表相同的字符序列作為指定的StringBuffer。 |
7 | static String copyValueOf(char[] data) 返回表示所指定的數(shù)組中的字符序列的字符串。 |
8 | static String copyValueOf(char[] data, int offset, int count) 返回表示所指定的數(shù)組中的字符序列的字符串。 |
9 | boolean endsWith(String suffix) 測試此字符串是否以指定的后綴結(jié)束。 |
10 | boolean equals(Object anObject) 比較此字符串與指定的對象。 |
11 | boolean equalsIgnoreCase(String anotherString) 比較這個字符串到另一個字符串,忽略大小寫的考慮。 |
12 | byte getBytes() 將此String解碼使用平臺的默認(rèn)字符集,并將結(jié)果存儲到一個新的字節(jié)數(shù)組中的字節(jié)序列。 |
13 | byte[] getBytes(String charsetName 將此String解碼使用指定的字符集的字節(jié)序列,并將結(jié)果存儲到一個新的字節(jié)數(shù)組。 |
14 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 從這個字符串復(fù)制字符到目標(biāo)字符數(shù)組。 |
15 | int hashCode() 為這個字符串返回一個哈希代碼。 |
16 | int indexOf(int ch) 返回此字符串指定字符第一次出現(xiàn)處的索引。 |
17 | int indexOf(int ch, int fromIndex) 返回索引這個字符串中指定字符第一次出現(xiàn)處,指定索引處開始搜索。 |
18 | int indexOf(String str) 返回此字符串指定子字符串的第一次出現(xiàn)處的索引。 |
19 | int indexOf(String str,int fromIndex) 返回這個字符串中指定子字符串的第一次出現(xiàn)處的索引,從指定的索引處開始。 |
20 | String intern() 返回字符串對象的規(guī)范化表示。 |
21 | int lastIndexOf(int ch) 返回此字符串指定字符最后一次出現(xiàn)處的索引。 |
22 | int lastIndexOf(int ch, int fromIndex) 返回此字符串指定字符最后一次出現(xiàn)處的索引,從指定索引開始向后搜索。 |
23 | int lastIndexOf(String str) 返回此字符串指定子字符串的最右邊出現(xiàn)處的索引。 |
24 | int lastIndexOf(String str, int fromIndex) 返回索引這個字符串中指定子字符串的最后出現(xiàn)處,從指定的索引開始處向后搜索。 |
25 | int length() 返回此字符串的長度。 |
26 | boolean matches(String regex) 判斷此字符串是否與給定的正則表達(dá)式匹配。 |
27 | boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) 測試兩個字符串的區(qū)域等于。 |
28 | boolean regionMatches(int toffset, String other, int ooffset, int len) 測試兩個字符串的區(qū)域都是相等的。 |
29 | String replace(char oldChar, char newChar) 返回從newChar更換oldChar所有出現(xiàn)在此字符串中產(chǎn)生一個新的字符串。 |
30 | String replaceAll(String regex, String replacement 替換此字符串中給定的正則表達(dá)式與給定替換相匹配的每個子字符串。 |
31 | String replaceFirst(String regex, String replacement) 替換此字符串匹配給定的正則表達(dá)式給定替換第一個子字符串。 |
32 | String[] split(String regex) 分割圍繞給定的正則表達(dá)式匹配的這個字符串。 |
33 | String[] split(String regex, int limit) 分割圍繞給定的正則表達(dá)式匹配的這個字符串。 |
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() 這個字符串轉(zhuǎn)換為一個新的字符數(shù)組。 |
40 | String toLowerCase() 將所有在此字符串中的字符使用默認(rèn)語言環(huán)境的規(guī)則小寫。 |
41 | String toLowerCase(Locale locale) 將所有在此字符串中的字符使用給定Locale的規(guī)則小寫。 |
42 | String toString() 這個對象(它已經(jīng)是一個字符串?。┓祷刈址问剑ㄟ@里是自己本身)。 |
43 | String toUpperCase() 使用默認(rèn)語言環(huán)境的規(guī)則將此String中所有的字符轉(zhuǎn)換為大寫。 |
44 | String toUpperCase(Locale locale) 使用給定Locale的規(guī)則將此String中所有的字符轉(zhuǎn)換為大寫。 |
45 | String trim() 返回字符串的一個副本,開頭和結(jié)尾的空格去除。 |
46 | static String valueOf(primitive data type x) 返回傳遞的數(shù)據(jù)類型參數(shù)的字符串表示形式。 |