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
程式庫中有許多內建方法可以檢查和操作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"
千萬小心,_不要_用+把兩個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方法應該將空字串視為有效。
實作(static)SqueakyClean.clean()方法,將任何空格取代為底線。這也適用於開頭與結尾的空格。
SqueakyClean.clean("my Id");
// => "my___Id"
修改(static)SqueakyClean.clean()方法,將 kebab-case 轉換成 camelCase。
SqueakyClean.clean("a-bc");
// => "aBc"
修改(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"
修改(static)SqueakyClean.clean()方法,省略任何不是字母的字元。
SqueakyClean.clean("a$#.b");
// => "ab"