Java 的 char 基本类型用 16 位来表示单个字符。
多个 char 可以组成一个字符串,比如 "word",也可以单独处理每个 char。
char 字面量用单引号括起来(例如 'A')。
char lowerA = 'a';
char upperB = 'B';
String的char
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 语言规范 中的 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()方法,把黑客语转换为普通文本。
为简单起见,我们只把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"