1. 更深入了解 String 類型
String 是 Java 中最常用的類型之一,甚至可以說是最常用的。它非常好用,因為此類變數可以儲存文字。另外,與 int 和 double 不同,String 物件有一大堆可用的函式,利用這些函式可以做各種有趣的事。
此外,Java 中的所有物件(真的全部)都可以轉換為 String。更精確地說,Java 中的所有物件都能回傳自己的文字(字串)表示。我們之後還會多次回到這個類型(因為它實在既實用又有趣),今天先來認識它的基礎。
建立 String 類型的變數
String 類型用於儲存字串(文字)。若要在程式碼中建立能儲存文字的變數,請使用下列指令:
String imya;
其中 imya 是變數名稱。
範例:
| 指令 | 說明 |
|---|---|
|
建立字串變數 name |
|
建立字串變數 message |
|
建立字串變數 text |
就像 int 與 double 一樣,也可以用簡寫一次建立多個 String 變數:
String imya1, imya2, imya3;
2. 為 String 變數賦值
若要將值放入 String 類型的變數中,請使用指令:
imya = "value";
這裡有個與先前類型不同之處:所有 String 的值都是文字字串,必須用雙引號包起來。
範例:
| 指令 | 備註 |
|---|---|
|
變數 name 包含文字 Anya |
|
變數 city 包含文字 New York |
|
變數 message 包含文字 Hello! |
3. 初始化 String 變數
與 int 和 double 一樣,String 變數也可以在建立時就初始化。其實在 Java 中所有類型都可以這麼做,因此之後就不再贅述了。
String imya1 = "value1", imya2 = "value2", imya3 = "value3";
String name = "Anya", city = "New York", message = "Hello!";
只有已賦值的變數才能修改
如果你宣告了變數卻未賦予任何值就使用它,Java 編譯器會報錯。
以下程式碼無法運作:
String name;
System.out.println(name); // 變數 name 尚未初始化。程式無法編譯。
int a;
a++; // 變數 a 尚未初始化。程式無法編譯。
double x;
double y = x; // 變數 x 尚未初始化。程式無法編譯。
4. 串接 — 連接字串
在 Java 中有一件很有趣且簡單的事可以對字串做——把它們連在一起。這個操作稱為 串接(concatenation)。為了更好記,也有人戲稱為「con-cat-enation」😆。也常被稱作「字串相加」或「字串拼接」。
要把兩個字串連在一起,只需使用 + 符號。非常簡單:
"string1" + "string2"
範例:
| 指令 | 備註 |
|---|---|
|
name 包含字串 AnyaAnya |
|
city 包含字串 New YorkAnya |
|
message 包含字串 Hello! Anya |
當然,你可以同時相加很多個字串,也可以把字串與變數相加。
String name = "Anya"; // name 包含字串 Anya
String city = "New York"; // city 包含字串 New York
String message = "Hello!" + city + name + city; // message 包含字串 Hello!New YorkAnyaNew York
5. 空字串
在上一個範例中可以看到,變數 message 的文字可讀性不佳,因為缺少空格。若要加入一個或多個空格,只要在程式碼中直接寫出來並用雙引號包起來即可。其實比你想的還簡單:
" "
另外,如果在引號之間完全不留任何內容(連續兩個雙引號),就會得到所謂的「空字串」:
""
某種意義上,它既「存在」,但輸出到畫面時又什麼都不會出現;與其他字串串接時也不會產生變化。有點像數值中的 0,但這是字串版的。
6. 在字串中跳脫特殊字元
你已經知道字串需要用雙引號包起來。但如果需要在字串中插入引號該怎麼辦?若我們直接在字串中寫引號,編譯器不就會把它當成字串結束嗎?
沒錯,會被當成結束。因此字串內的引號要用 \" 這一對字元來表示。程式碼會像這樣:
String quote = "He said: \"Hello!\"";
System.out.println(quote); // He said: "Hello!"
其實還有點小巧思:字串中 \ 會被視為特殊(控制)字元。透過它可以表示各種「不可打印字元」,例如換行、定位字元等。若要在字串中表示 \ 本身,則需要連寫 2 個。
以下是 4 個最常見的組合:
| 寫法 | 含義 |
|---|---|
| \n | 換行(newline) |
| \t | 定位字元(縮排) |
| \\ | 字面上的 \ |
| \" | 字串中的雙引號 |
範例:
String multiline = "Line 1\nLine 2";
System.out.println(multiline);
輸出:
Line 1
Line 2
7. String 的常用函式
String 類型有自己的函式(也稱為方法)。數量很多,能大幅減輕開發者的負擔。今天先認識其中幾個最基本的。範例:
| 函式 | 說明 | 範例結果 |
|---|---|---|
|
字串長度 | |
|
轉成大寫 | |
|
轉成小寫 | |
|
移除兩端空白 | |
使用字串函式的範例
所有這些函式的呼叫方式如下:peremennaya.funktsiya(...)。
取得字串長度:
String name = "Andrey";
int length = name.length();
System.out.println(length); // 6,因為有 6 個字母
將字串轉成大寫或小寫:
String original = "Hello";
System.out.println(original.toUpperCase()); // HELLO
System.out.println(original.toLowerCase()); // hello
移除兩端空白(在鍵盤輸入時很實用):
String messy = " hello ";
System.out.println(messy.trim()); // "hello"
每個這樣的函式都會回傳新的字串,原本的字串則不會改變。
GO TO FULL VERSION