Java String 類
Java 中的 String 對象用于存儲或操作一個或多個字節(jié)的序列
Java 中字符串屬于對象当宴,Java 提供了 String 類來創(chuàng)建和操作字符串
創(chuàng)建字符串
創(chuàng)建字符串最簡單的方式就是
String greeting = "Hello World";
編譯 Java 代碼時避归,在遇到字符串常量時贝室,這里的值是 "Hello World",編譯器會使用該值創(chuàng)建一個 String 對象
和其它對象一樣劲妙,還可以使用關(guān)鍵字和構(gòu)造方法來創(chuàng)建 String 對象
Java 中的 String 類有 11 種構(gòu)造方法胸遇,這些方法提供不同的參數(shù)來初始化字符串,比如提供一個字符數(shù)組參數(shù)
public class StringDemo{
public static void main(String args[]){
char[] helloArray = { 't', 'w', 'l', 'e'};
String helloString = new String(helloArray);
System.out.println( helloString );
}
}
編譯運行以上 Java 代碼纷捞,輸出結(jié)果如下
twle
注意: String 類是不可改變的,一旦創(chuàng)建了 String 對象被去,那它的值就無法改變了
如果需要對字符串做很多修改兰绣,那么應(yīng)該選擇使用 StringBuffer & StringBuilder 類
字符串長度
用于獲取有關(guān)對象的信息的方法稱為訪問器方法
String 類的一個訪問器方法是 length() 方法,它返回字符串對象包含的字符數(shù)
下面的代碼執(zhí)行后编振,len 變量等于 15
public class StringDemo {
public static void main(String args[]) {
String site = "www.jianshu.cn";
int len = site.length();
System.out.println( "簡單編程網(wǎng)址長度 : " + len );
}
}
編譯運行以上 Java 代碼,輸出結(jié)果如下
簡單編程網(wǎng)址長度 : 15
連接字符串
String 類提供了連接兩個字符串的方法
string1.concat( string2 );
返回 string2 連接 string1 的新字符串
也可以對字符串常量使用 concat() 方法
"我的名字是 ".concat("Twle");
更常用的是使用 '+' 操作符來連接字符串
"Hello," + " twle" + "!"
編譯運行結(jié)果如下
"Hello, twle!"
我們可以使用一個測試類來演示下
public class StringDemo {
public static void main(String args[]) {
String string1 = "簡單編程網(wǎng)址:";
System.out.println(string1 + "http://" + "www.reibang.com");
}
}
編譯運行以上 Java 代碼,輸出結(jié)果如下
簡單編程網(wǎng)址:http://www.reibang.com
創(chuàng)建格式化字符串
我們都知道 printf() 和 format() 方法可以用于輸出和格式化數(shù)字
String 類的靜態(tài)方法 format() 返回一個 String 對象而不是 PrintStream 對象
format() 方法可以創(chuàng)建可復(fù)用的格式化字符串踪央,而不僅僅是用于一次打印輸出
System.out.printf("浮點型變量的值為 " +
"%f, 整型變量的值為 " +
" %d, 字符串變量的值為 " +
"is %s", floatVar, intVar, stringVar);
當(dāng)然了臀玄,我們還可以這寫
String fs;
fs = String.format("浮點型變量的值為 " +
"%f, 整型變量的值為 " +
" %d, 字符串變量的值為 " +
" %s", floatVar, intVar, stringVar);
String 方法
下表列出了 String 類常用的方法
方法 |
描述 |
char charAt(int index) |
返回指定索引處的 char 值 |
int compareTo(Object o) |
把這個字符串和另一個對象比較 |
int compareTo(String anotherString) |
按字典順序比較兩個字符串 |
int compareToIgnoreCase(String str) |
按字典順序比較兩個字符串,不考慮大小寫 |
String concat(String str) |
將指定字符串連接到此字符串的結(jié)尾 |
boolean contentEquals(StringBuffer sb) |
當(dāng)且僅當(dāng)字符串與指定的StringButter有相同順序的字符時候返回真 |
static String copyValueOf(char[] data) |
返回指定數(shù)組中表示該字符序列的 String |
static String copyValueOf(char[] data, int offset, int count) |
返回指定數(shù)組中表示該字符序列的 String |
boolean endsWith(String suffix) |
測試此字符串是否以指定的后綴結(jié)束 |
boolean equals(Object anObject) |
將此字符串與指定的對象比較 |
boolean equalsIgnoreCase(String anotherString) |
將此 String 與另一個 String 比較畅蹂,不考慮大小寫 |
byte[] getBytes() |
使用平臺的默認字符集將此 String 編碼為 byte 序列健无,并將結(jié)果存儲到一個新的 byte 數(shù)組中 |
byte[] getBytes(String charsetName) |
使用指定的字符集將此 String 編碼為 byte 序列,并將結(jié)果存儲到一個新的 byte 數(shù)組中 |
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) |
將字符從此字符串復(fù)制到目標(biāo)字符數(shù)組 |
int hashCode() |
返回此字符串的哈希碼 |
int indexOf(int ch) |
返回指定字符在此字符串中第一次出現(xiàn)處的索引 |
int indexOf(int ch, int fromIndex) |
返回在此字符串中第一次出現(xiàn)指定字符處的索引液斜,從指定的索引開始搜索 |
int indexOf(String str) |
返回指定子字符串在此字符串中第一次出現(xiàn)處的索引 |
int indexOf(String str, int fromIndex) |
返回指定子字符串在此字符串中第一次出現(xiàn)處的索引累贤,從指定的索引開始 |
String intern() |
返回字符串對象的規(guī)范化表示形式 |
int lastIndexOf(int ch) |
返回指定字符在此字符串中最后一次出現(xiàn)處的索引 |
int lastIndexOf(int ch, int fromIndex) |
返回指定字符在此字符串中最后一次出現(xiàn)處的索引,從指定的索引處開始進行反向搜索 |
int lastIndexOf(String str) |
返回指定子字符串在此字符串中最右邊出現(xiàn)處的索引 |
int lastIndexOf(String str, int fromIndex) |
返回指定子字符串在此字符串中最后一次出現(xiàn)處的索引少漆,從指定的索引開始反向搜索 |
int length() |
返回此字符串的長度 |
boolean matches(String regex) |
告知此字符串是否匹配給定的正則表達式 |
boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) |
測試兩個字符串區(qū)域是否相等 |
boolean regionMatches(int toffset, String other, int ooffset, int len) |
測試兩個字符串區(qū)域是否相等 |
String replace(char oldChar, char newChar) |
返回一個新的字符串臼膏,它是通過用 newChar 替換此字符串中出現(xiàn)的所有 oldChar 得到的 |
String replaceAll(String regex, String replacement |
使用給定的 replacement 替換此字符串所有匹配給定的正則表達式的子字符串 |
String replaceFirst(String regex, String replacement) |
使用給定的 replacement 替換此字符串匹配給定的正則表達式的第一個子字符串 |
String[] split(String regex) |
根據(jù)給定正則表達式的匹配拆分此字符串 |
String[] split(String regex, int limit) |
根據(jù)匹配給定的正則表達式來拆分此字符串 |
boolean startsWith(String prefix) |
測試此字符串是否以指定的前綴開始 |
boolean startsWith(String prefix, int toffset) |
測試此字符串從指定索引開始的子字符串是否以指定前綴開始 |
CharSequence subSequence(int beginIndex, int endIndex) |
返回一個新的字符序列,它是此序列的一個子序列 |
String substring(int beginIndex) |
返回一個新的字符串示损,它是此字符串的一個子字符串 |
String substring(int beginIndex, int endIndex) |
返回一個新字符串渗磅,它是此字符串的一個子字符串 |
char[] toCharArray() |
將此字符串轉(zhuǎn)換為一個新的字符數(shù)組 |
String toLowerCase() |
使用默認語言環(huán)境的規(guī)則將此 String 中的所有字符都轉(zhuǎn)換為小寫 |
String toLowerCase(Locale locale) |
使用給定 Locale 的規(guī)則將此 String 中的所有字符都轉(zhuǎn)換為小寫 |
String toString() |
返回此對象本身 ( 它已經(jīng)是一個字符串 ) |
String toUpperCase() |
使用默認語言環(huán)境的規(guī)則將此 String 中的所有字符都轉(zhuǎn)換為大寫 |
String toUpperCase(Locale locale) |
使用給定 Locale 的規(guī)則將此 String 中的所有字符都轉(zhuǎn)換為大寫 |
String trim() |
返回字符串的副本,忽略前導(dǎo)空白和尾部空白 |
static String valueOf(primitive data type x) |
返回給定data type類型x參數(shù)的字符串表示形式 |
完整的 Java 字符串方法检访,可以訪問 Java String API