字符是组成英文的基本部分,在编程的世界中,26 个英文字母远远不能满足日常的需求。除了 26 个字母之外,还有其他的字符供编程使用。下面我们介绍一下 Java 编程中的字符。
字符
字符是一个个单个的符号,如 26 个英文字母(包含大小写)、10 个阿拉伯数字等。这些字符在计算机中是按照 ASCII 码的方式进行存储的,其取值范围是 0~127。ASCII 码值与字符的对应可以参照相关资料进行查阅。
在 Java 编程时,定义一个字符变量,可以使用 char 关键字,例如:
char ch1='A';
char ch2='a';
上面的语句定义了两个字符型变量 ch1 和 ch2,其字符值分别标识字符 A 和字符 a。在使用强制转换时,字符可以直接转换为对应的 ASCII 码值,如示例 1 所示。
【示例 1】字符和int类型互相转换
package chapter12;
public class AssicToInt {
public static void main(String args[]) {
char ch1 = 'a';
char ch2 = '2';
int num = 65;
System.out.println("字符变量" + ch1 + "对应的ASCII数值为" + (int) ch1);
System.out.println("字符变量" + ch2 + "对应的ASCII数值为" + (int) ch2);
System.out.println("字符变量" + num + "对应的ASCII数值为" + (char) num);
}
}
程序编译后,运行结果如下:
字符变量a对应的ASCII数值为97
字符变量2对应的ASCII数值为50
字符变量65对应的ASCII数值为A
从示例 1 的运行结果可以看出,字符型的变量在计算机中是按照 ASCII 码值进行存储的,如果强行输出整型数值,那么系统会将字符对应的 ASCII 码值输出。同理,如果强制转换在范围内的 ASCII 码值为字符型,那么也会输出对应的字符。
在进行 Java 编程时,一般使用关键字 char 来定义一个字符变量,而在实际的编程过程中,经常会使用到对象。Character 类在对象中包装一个基本类型为 char 的值。
Character类
Java 语言为内置数据类型 char 提供了包装类 Character 类。在使用时,仅需要使用类 Character 创建相应的对象即可实现对字符的操作。Character 类的使用方式如示例 1 所示。
【示例 1】Character类的使用
package chapter12;
public class CharacterClass {
public static void main(String args[]) {
Character ch1 = new Character('A');
Character ch2 = new Character('1');
System.out.println("判断字符" + ch1 + "是否为一个字母,结果为:" + Character.isLetter(ch1));
System.out.println("判断字符" + ch2 + "是否为一个数字,结果为:" + Character.isDigit(ch2));
System.out.println("判断字符" + ch2 + "是否为一个空格,结果为:" + Character.isSpaceChar(ch2));
System.out.println("判断字符" + ch1 + "是否为一个大写字母,结果为:" + Character.isUpperCase(ch1));
System.out.println("字符" + ch1 + "转为小写字母,结果为:" + Character.toLowerCase(ch1));
System.out.println("字符" + ch1 + "对应的十进制数值为:" + (int) (ch1));
System.out.println("字符" + ch2 + "对应的十进制数值为:" + (int) (ch2));
System.out.println("字符" + ch1 + "和字符" + ch2 + "进行比较,结果为:" + Character.compare(ch1, ch2));
System.out.println("字符" + ch2 + "和字符" + ch1 + "进行比较,结果为:" + Character.compare(ch2, ch1));
}
}
程序编译后,运行结果如下:
判断字符A是否为一个字母,结果为:true
判断字符1是否为一个数字,结果为:true
判断字符1是否为一个空格,结果为:false
判断字符A是否为一个大写字母,结果为:true
字符A转为小写字母,结果为:a
字符A对应的十进制数值为:65
字符1对应的十进制数值为:49
字符A和字符1进行比较,结果为:16
字符1和字符A进行比较,结果为:-16
在示例 1 中,首先定义了两个 Character 类的对象 ch1 和 ch2;然后依次调用了 Character 类中的静态方法来判断字符是否为字符、是否为数字、是否为空格、转为小写字符,并进行了比较运算。通过将其转换为 ASCII 码值后的结果可以看出,对字符进行比较,返回的结果一般是两个字符的 ASCII 码值的差值。
Character 类中提供了非常丰富的普通方法和静态方法,在实际的运算和操作过程中可以根据需要来选择使用哪些方法,而不需要重新实现。
我们也可以通过键盘输入一个整数 65,然后输出对应的 ASCII 码值。参考代码如示例 2 所示。
【示例 2】输出整数对应的ASCII码值
package chapter12;
public class work1 {
public static void main(String[] args) {
int i = 65; // 定义整数
char ch = (char) i; // 强制转换为字符
System.out.println("整数" + i + "转换为字符为:" + ch);
}
}
程序编译后,运行结果如下:
整数65转换为字符为:A