Java String類詳解
Java字元串類(java.lang.String)是Java中使用最多的類,也是最為特殊的一個類,很多時候,我們對它既熟悉又陌生。
類結構:
public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence
類概述:
Java程式中的所有字面值(string literals),即雙引号括起的字元串,如"abc",都是作為String類的執行個體實作的。
String是常量,其對象一旦構造就不能再被改變。換句話說,String對象是不可變的,每一個看起來會修改String值的方法,實際上都是創造了一個全新的String對象,以包含修改後的字元串内容。
String對象具有隻讀特性,指向它的任何引用都不可能改變它的值,是以,也不會對其他的引用有什麼影響。
構造方法:
Public Constructors |
String() 構造一個空字元串。 |
String(byte[] data) 将位元組數組轉換為字元串使用系統的default charset 通過byte數組構造字元串對象。 |
String(byte[] data, int offset, int byteCount) 将位元組數組中指定位元組轉換成字元串。 |
String(byte[] data, int offset, int byteCount, String charsetName) 使用指定的字元集,将位元組數組中指定位元組轉換成字元串。 |
String(byte[] data, String charsetName) 使用指定的字元集,将位元組數組轉換成一個字元串。 |
String(byte[] data, int offset, int byteCount, Charset charset) |
String(byte[] data, Charset charset) 使用指定的字元集,将位元組數組轉換成字元串。 |
String(char[] data) 将字元數組轉換成字元串 |
String(char[] data, int offset, int charCount) 将字元數組中指定字元轉換成字元串。 |
String(String toCopy) 構造一個toCopy的副本。即:拷貝一個toCopy。 |
String(StringBuffer stringBuffer) 将StringBuffer轉換成字元串。 |
String(int[] codePoints, int offset, int count) 配置設定一個String,它包含該 Unicode 代碼點數組參數的一個子數組的字元。 |
String(StringBuilder stringBuilder) 将StringBuilder 轉換成字元串。 |
常用公有方法:
Public Methods | |
char | charAt(int index) 取字元串中的某一個字元,其中的參數index指的是字元串中序數。字元串的序數從0開始到length()-1 。 |
int | compareTo(String anotherString) 目前String對象與anotherString比較。相等傳回0;不相等時,從兩個字元串第0個字元開始比較,傳回第一個不相等的字元差,另一種情況,較長字元串的前面部分恰巧是較短的字元串,傳回它們的長度差。 |
String | concat(String str) 将該String對象與str連接配接在一起。提示:通過“+”串聯更友善。 |
boolean | contentEquals(CharSequence cs) 将該String對象與CharSequence的 對象cs進行比較。相等傳回true。 |
contentEquals(StringBuffer strbuf) 将該String對象與StringBuffer 的對象 進行比較。相等傳回true。 | |
static String | copyValueOf(char[] data, int start, int length) 将char數組中指定字元轉換成String。 |
copyValueOf(char[] data) 将char數組轉換成String。 | |
endsWith(String suffix) 判斷該字元串是否以suffix結尾。是傳回true。 | |
equals(Object anObject) 當anObject不為空并且與目前String對象一樣,傳回true;否則,傳回false。 | |
equalsIgnoreCase(String string) 比較字元串與another是否一樣(忽略大小寫)。 | |
byte[] | getBytes(String charsetName) 使用指定字元集,将該String對象轉換成byte數組。 |
getBytes(Charset charset) | |
getBytes() 将該String對象轉換成byte數組,使用預設字元集。 | |
void | getChars(int start, int end, char[] buffer, int index) 将字元串拷貝到字元數組中。其中,start為拷貝的起始位置、end為拷貝的結束位置、字元串數值buffer為目标字元數組、index為目标字元數組的拷貝起始位置。 |
hashCode() 傳回目前字元的哈希表碼。 | |
indexOf(int c) 自左向右隻找第一個比對字元位置。 | |
indexOf(int c, int fromIndex) 從fromIndex開始自左向右找第一個比對字元位置。 | |
indexOf(String subString, int fromIndex) 從fromIndex開始自左向右找第一個比對字元串位置。 | |
indexOf(String string) 自左向右查找第一個比對字元串位置。 | |
isEmpty() 如果字元串的長度為0,則傳回true。 | |
lastIndexOf(String string) 自右向左查找第一個比對字元串位置。 | |
lastIndexOf(int c, int fromIndex) 從fromIndex開始自右向左找第一個比對字元串位置。 | |
lastIndexOf(int c) 自右向左查找第一個比對字元位置。 | |
lastIndexOf(String subString, int start) | |
length() 傳回字元串的字元個數。 | |
regionMatches(boolean ignoreCase, int thisStart, String string, int start, int length) 用于比較一個字元串中特定區域與另一特定區域。參數ignoreCase:是否允許在比較中忽略大小寫。如果比對傳回 。 | |
regionMatches(int thisStart, String string, int start, int length) 用于比較一個字元串中特定區域與另一特定區域。如果比對傳回 | |
replace(CharSequence target, CharSequence replacement) 将字元号串中的target替換成replacement。 | |
replace(char oldChar, char newChar) 将字元号串中的oldChar替換成newChar。 | |
replaceAll(String regularExpression, String replacement) 将符合 (增則表達式)的内容都替換成replacement。 | |
replaceFirst(String regularExpression, String replacement) 隻将第一個符合 | |
String[] | split(String regularExpression) 将一個字元串按照指定的分隔符分隔,傳回分隔後的字元串數組。 |
split(String regularExpression, int limit) 将一個字元串按照指定的分隔符分隔,傳回分隔後的字元串數組。其中參數:limit控制模式應用的次數,是以影響結果數組的長度。 | |
startsWith(String prefix) 該String對象是否以prefix開始。 | |
startsWith(String prefix, int start) 該String對象從toffset位置算起,是否以prefix開始。 | |
CharSequence | subSequence(int start, int end) 取從start位置開始到end位置結束的CharSequence。 |
substring(int start) 取從start位置開始到結束的子字元串。 | |
substring(int start, int end) 取從start位置開始到end位置結束的子字元串。 | |
char[] | toCharArray() 将該String對象轉換成char數組。 |
toLowerCase() 将字元串轉換成小寫。 | |
toUpperCase() 将字元串轉換成大寫。 | |
trim() 移除字元串中的空格。 | |
valueOf(long value) 将long 類型的對象轉換成字元串。 | |
valueOf(Object value) 将value對象轉換成字元串。 | |
valueOf(char[] data) 将char[]類型的對象轉換成字元串。 | |
valueOf(double value) 将double類型的對象轉換成字元串。 | |
valueOf(int value) 将int類型的對象轉換成字元串。 | |
valueOf(float value) float類型的對象轉換成字元串。 | |
valueOf(char[] data, int start, int length) 将字元數組中從start位置開始長度為length的字元轉換成字元串。 | |
valueOf(boolean value) 将boolean類型的對象轉換成字元串。 | |