Java中的字串由String類別描述,並且是靜態的,即 在現有行中,您無法變更字元及其數量。除了透過 new 運算子進行標準建立之外,還可以直接從字串文字建立字串。同時,為了優化目的,以這種方式建立的物件額外儲存在一個單獨的區域——字串池中。
String s1 = "d" // строка будет сохранена в пуле // строка не будет сохранена в пуле // будет уничтожена сборщиком мусора String s2 = new String("a");
將字串分為靜態和動態的優點之一是,它可以提高使用字串作為參數的安全性(例如,開啟資料庫、Internet 連線、類別載入機制)。
操作+
+ 操作可用於字串,讓您可以將多個字串合併為一個。如果其中一個操作數不是字串,則會自動轉換為字串。對於對象,toString 方法就是用於此目的。每個操作內部都使用動態 StringBuilder 或 StringBuffer 物件。因此,要將多個字串組裝成一個字串,最好一次使用一個 StringBuilder/StringBuffer。子字串選擇
關於 substring 方法有一個註解 - 傳回的字串使用與原始字串相同的位元組數組。例如,您從 1MB 檔案下載了 A 行。他們在那裡發現了一些東西,並將其分成單獨的 B 行,3 個字元長。B線其實也佔用同樣的1MB。String s ="very .... long string from file"; // совместно использует ту же память что и s String sub1 = s.substring(2,4); // этот an object использует отдельный массив на 4 символа String sub2 = new String(s.substring(2,4));
基本方法
- compareTo (String anotherString) - 字串的字典比較;
- CompareToIgnoreCase (String str) - 字串的不區分大小寫的字典比較;
- RegionMatches (booleanignoreCase, int toffset, String other, int ooffset, int len) - 測試字串區域的標識,可以指定區分大小寫;
- RegionMatches (int toffset, String other, int ooffset, int len) - 測試字串區域的識別;
- concat (String str) - 傳回兩個字串的串聯;
- contains (CharSequence s) - 檢查指定的字元序列是否包含在字串中;
- endsWith (String suffix) - 檢查字串是否以指定後綴結尾;
- startsWith (String prefix) - 檢查字串是否以指定的前綴開頭;
- startsWith (String prefix, int toffset) - 檢查指定位置的字串是否以指定前綴開頭;
- equals (Object anObject) - 檢查字串是否與指定物件相同;
- getBytes ()-傳回字串的位元組表示形式;
- getChars (int srcBegin, int srcEnd, char[] dst, int dstBegin) - 傳回字串的一部分的字元表示形式;
- hashCode () - 字串的雜湊碼;
- indexOf (int ch) - 搜尋字串中第一次出現的字元;
- indexOf (int ch, int fromIndex) - 從指定位置開始搜尋字串中第一次出現的字元;
- indexOf (String str) - 搜尋指定子字串的第一次出現;
- indexOf (String str, int fromIndex) - 從指定位置搜尋指定子字串的第一次出現;
- lastIndexOf (int ch) - 搜尋最後一次出現的符號;
- lastIndexOf (int ch, int fromIndex) - 從指定位置開始搜尋最後一次出現的字元;
- lastIndexOf (String str) - 搜尋字串最後一次出現的位置;
- lastIndexOf (String str, int fromIndex) - 從指定位置搜尋最後一次出現的字串;
- Replace (char oldChar, char newChar) - 將字串中的一個字元替換為另一個字元;
- Replace (CharSequence target, CharSequence replacement) - 將一個子字串替換為另一個子字串;
- substring (int beginIndex, int endIndex) - 以字串形式傳回子字串;
- toLowerCase ()——將字串轉換為小寫;
- toLowerCase (Locale locale) - 使用指定的區域設定將字串轉換為小寫;
- toUpperCase() - 將字串轉換為大寫;
- toUpperCase (Locale locale) - 使用指定的區域設定將字串轉換為大寫;
- Trim() - 修剪字串末尾的空字元;
- valueOf(a) - 用於將各種類型轉換為字串的靜態方法。
- matches (String regex) - 字串是否與指定的正規表示式相符;
- ReplaceAll (String regex, String rplс) - 將所有出現的滿足正規表示式的字串替換為指定字串;
- ReplaceFirst (String regex, String rplс) - 用指定字串取代第一次出現的與正規表示式相符的字串;
- split (String regex) - 將字串拆分為多個部分,拆分的邊界是滿足正規表示式的字串的出現次數;
- split (String regex, int limit) - 與前一個類似,但限制是將正規表示式應用於字串到限制值。如果limit>0,則傳回的字串陣列的大小不會超過limit。如果 limit<=0,則正規表示式將無限次套用至字串。
GO TO FULL VERSION