CodeGym /課程 /JAVA 25 SELF /字串與文字:String 類型,字串操作

字串與文字:String 類型,字串操作

JAVA 25 SELF
等級 2 , 課堂 2
開放

1. 更深入了解 String 類型

String 是 Java 中最常用的類型之一,甚至可以說是最常用的。它非常好用,因為此類變數可以儲存文字。另外,與 intdouble 不同,String 物件有一大堆可用的函式,利用這些函式可以做各種有趣的事。

此外,Java 中的所有物件(真的全部)都可以轉換為 String。更精確地說,Java 中的所有物件都能回傳自己的文字(字串)表示。我們之後還會多次回到這個類型(因為它實在既實用又有趣),今天先來認識它的基礎。

建立 String 類型的變數

String 類型用於儲存字串(文字)。若要在程式碼中建立能儲存文字的變數,請使用下列指令:

String imya;
建立 String 類型的變數

其中 imya 是變數名稱。

範例:

指令 說明
String name;
建立字串變數 name
String message;
建立字串變數 message
String text;
建立字串變數 text

就像 intdouble 一樣,也可以用簡寫一次建立多個 String 變數:

String imya1, imya2, imya3;
建立 String 類型變數

2. 為 String 變數賦值

若要將值放入 String 類型的變數中,請使用指令:

imya = "value";
String 變數指派值

這裡有個與先前類型不同之處:所有 String 的值都是文字字串,必須用雙引號包起來。

範例:

指令 備註
String name = "Anya";
變數 name 包含文字 Anya
String city = "New York";
變數 city 包含文字 New York
String message = "Hello!";
變數 message 包含文字 Hello!

3. 初始化 String 變數

intdouble 一樣,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"
串接兩個字串

範例:

指令 備註
String name = "Anya" + "Anya";
name 包含字串 AnyaAnya
String city = "New York" + "Anya";
city 包含字串 New YorkAnya
String message = "Hello! " + "Anya";
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 類型有自己的函式(也稱為方法)。數量很多,能大幅減輕開發者的負擔。今天先認識其中幾個最基本的。範例:

函式 說明 範例結果
str.length()
字串長度
"abc".length() → 3
str.toUpperCase()
轉成大寫
"abc".toUpperCase() → "ABC"
str.toLowerCase()
轉成小寫
"ABC".toLowerCase() → "abc"
str.trim()
移除兩端空白
"  x y  ".trim() → "x y"

使用字串函式的範例

所有這些函式的呼叫方式如下: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"

每個這樣的函式都會回傳新的字串,原本的字串則不會改變

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION