9.1 字符

字符串提供了提取字符的方法 charAt,这个方法会返回一个 char,这是一种存储单个字符(而不是字符串)的基本类型

  1. String fruit = "banana";
  2. char letter = fruit.charAt(0);

实参 0 表示要提取位置 0 处的字符。与数组索引一样,字符串索引也从 0 开始,因此,赋给变量 letter 的字符是字母 b

字符的工作原理与前面介绍过的其他基本类型相似,可用关系运算符来比较它们:

  1. if (letter == 'a') {
  2. System.out.println('?');
  3. }

字符字面量是用单引号括起的,如 'a'。不同于用双引号括起的字符串字面量,字符字面量只能包含一个字符。转义序列(如 '\t')是合法的字符字面量,因为它们表示的是单个字符。

递增和递减运算符也可用于字符,因此下面的循环显示字母表中的所有字母:

  1. System.out.print("Roman alphabet: ");
  2. for (char c = 'A'; c <= 'Z'; c++) {
  3. System.out.print(c);
  4. }
  5. System.out.println();

Java 用 Unicode 表示字符,因此字符串可存储西里尔文字和希腊文字,还可存储非字母文字(如中文),有关这方面的更多详细信息请参阅 http://unicode.org/

在 Unicode 中,每个字符由一个字符编码表示,我们可将字符编码视为整数。大写的希腊字母的字符编码为 913~937,因此我们可以像下面这样显示希腊字母表:

  1. System.out.print("Greek alphabet: ");
  2. for (int i = 913; i <= 937; i++) {
  3. System.out.print((char) i);
  4. }
  5. System.out.println();

这个示例使用了类型转换将指定范围内的每个整数都转换为相应的字符。