String一、班級結構

今天我們就來說說String課堂。在 ints 之後,String 類是 Java 中最受歡迎的類。它絕對無處不在。它有許多有用的方法,您最好了解這些方法。

該類String是除原始類型之外唯一可以在switch語句中使用文字的類;編譯器以特殊方式處理字符串加法和 String 對象;String對像以特殊方式存儲在內存中。基本上,String班級是一個非常特殊的班級。

此外,該類String還有一堆輔助類,其目的是進一步簡化 Java 中字符串的處理。當你學會了這一切,很多事情對你來說真的會變得容易多了。好吧,我們將從這個生態系統的核心開始——班級的組織String

字符數組

類的結構String其實很簡單:裡面是一個字符數組(char array),裡面存放了字符串的所有字符。例如,這是單詞“Hello”的存儲方式:

String類的結構
重要的!

其實,這並不完全準確。因為這個String類非常重要,它使用了很多優化,並且數據在內部存儲的不是字符數組,而是簡單的字節數組。


2.String類的方法

該類String有很多方法:僅它就有 18 個構造函數!所以下面我們只提到其中最基本的:

方法 描述
int length()
返回字符串中的字符數
boolean isEmpty()
檢查字符串是否為空字符串
boolean isBlank()
檢查字符串是否僅包含空白字符:空格、製表符、換行符等。
char charAt(int index)
返回字符串中索引位置的字符。
char[] toCharArray()
返回組成字符串的字符數組(副本)
byte[] getBytes()
將字符串轉換為一組字節並返回字節數組。
String[] split(String regex)
將字符串拆分為多個子字符串。
String join(CharSequence delimiter, elements)
將多個子字符串連接在一起
String intern()
將字符串放入string pool.

您可以在Java 構造函數一文中了解有關構造函數的更多信息。

讓我們編寫一個程序,將文件路徑從 Unix 風格轉換為 Windows 風格。Unix 使用/字符分隔文件夾,而 Windows 使用字符\

解決方案 1:使用 char 數組

代碼 筆記
Scanner console = new Scanner(System.in);
String path = console.nextLine();

char[] chars = path.toCharArray();
for (int i = 0; i < chars.length; i++)
   if (chars[i] == '/')
      chars[i] = '\\';

String result = new String(chars);
System.out.println(result);
創建一個 Scanner 對象
從控制台讀取一行

將字符串轉換為字符數組
在字符上循環
如果字符是/
則將其替換為\. 不要忘記逃跑。

根據字符數組創建一個新字符串。
顯示字符串。

解決方案 2: — 使用split()join()方法

代碼 筆記
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String[] array = path.split("/");


String result = String.join("\\", array);


System.out.println(result);
創建一個 Scanner 對象
從控制台讀取一行

Convert string to array of strings。該/字符用作分隔符(額外的兩個斜杠是雙重轉義的結果)。連接字符串數組
中的所有字符串。用作分隔符(我們看到它轉義了)。 顯示字符串。 \

解決方案 3: — 使用replace(char oldChar, char newChar)方法

代碼 筆記
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String result = path.replace('/', '\\');

System.out.println(result);
創建一個 Scanner 對象
從控制台讀取一行

只需將一個字符替換為另一個字符
(第二個字符被轉義)
顯示字符串。