學習軌道
/
Java
Java
/
練習
/
一乾二淨
一乾二淨

一乾二淨

學習練習

簡介

字元

字元

Java 的char基本型別以 16 位元來表示單一字元。 多個char可以組成一個字串,例如"word",也可以獨立處理每個char。 char字面值以單引號包住(例如'A')。

char lowerA = 'a';
char upperB = 'B';

取得String的字元

String.toCharArray方法會將字串的字元以陣列的形式回傳。 如同陣列單元所提到的,你可以使用for迴圈疊代整個陣列。

String text = "Hello";
char[] asArray = text.toCharArray();

for (char ch: asArray) {
    System.out.println(ch);
}

// Outputs:
// H
// e
// l
// l
// o

Character 類別

程式庫中有許多內建方法可以檢查和操作char。 這些方法都是java.lang.Character類別的靜態方法。 以下是一些例子:

Character.isWhitespace(' ');    // true
Character.isWhitespace('#');    // false

Character.isLetter('a');        // true
Character.isLetter('3');        // false

Character.isDigit('6');         // true
Character.isDigit('?');         // false

將char加入String

你可以使用+運算子將char加入String。

'a' + " banana"     // => "a banana"
"banana " + 'a'     // => "banana a"
Caution

千萬小心,_不要_用+把兩個char串接成一個String! 這樣把兩個char相加會得到int,而不是String! 例如:

'b' + 'c';
// => 197 (not the String "bc")

這是因為 Java 會將char提升為int(請參閱《Java Language Specification》的4.2 基本型別與值 )。

不過,當要加入的字元很多時,改用StringBuilder會更有效率:

StringBuilder builder = new StringBuilder();
builder.append('a');
builder.append('b');
builder.append('c');

String builtString = builder.toString();
// => abc

說明

在這道練習中,你會實作一部分的輔助函式,用來協助開發者清理 SqueakyClean 名稱。

在這 4 個任務中,你會逐步建構出clean方法。 有效的 SqueakyClean 名稱由零個或多個字母和底線組成。

無論哪種情況,輸入字串都保證不是 null。請注意,clean方法應該將空字串視為有效。

1. 將遇到的所有空格取代為底線

實作(static)SqueakyClean.clean()方法,將任何空格取代為底線。這也適用於開頭與結尾的空格。

SqueakyClean.clean("my   Id");
// => "my___Id"

2. 將 kebab-case 轉換成 camelCase

修改(static)SqueakyClean.clean()方法,將 kebab-case 轉換成 camelCase。

SqueakyClean.clean("a-bc");
// => "aBc"

3. 將 leetspeak 轉換成一般文字

修改(static)SqueakyClean.clean()方法,將 leetspeak 轉換成一般文字。

為了簡單起見,我們只會將4、3、0、1和7分別取代為a、e、o、l和t。

SqueakyClean.clean("H3ll0 W0rld");
// => "Hello_World"
SqueakyClean.clean("4 73s7");
// => "a_test"

4. 省略任何不是字母的字元

修改(static)SqueakyClean.clean()方法,省略任何不是字母的字元。

SqueakyClean.clean("a$#.b");
// => "ab"
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Java Exercism

準備好開始 一乾二淨 了嗎?

註冊 Exercism,透過 26 個概念158 個練習 和真人引導來學習並精通 Java,全部免費。