Java 中的包装类与字符类
阅读:94
点赞:0
一. 引言
在 Java 中,使用基本数据类型声明的变量并不被视为对象。为了将基本数据类型作为对象进行操作,Java 提供了包装类。每种基本数据类型在 java.lang
包中都有一个相应的包装类。由于 Java 程序默认导入 java.lang
包,因此无需显式导入该包。
二. 包装类的构造
包装类对象可以通过将要包装的值传递给相应的构造函数来创建。例如:
int num1 = 5; // 声明一个基本数据类型的变量
Integer num = new Integer(num1); // 使用 Integer 类包装基本数据类型
int num2 = num.intValue(); // 通过包装类对象 num 获取 int 值
在这个例子中,num
是 Integer
包装类的对象。最后一条语句通过包装类对象 num
访问 intValue()
方法,将 num
的值存储到 num2
中。
三. 包装类示例
下面的示例展示了如何使用包装类:
class NumberWrap {
protected NumberWrap() { // 默认构造函数
}
public static void main(final String[] args) {
String number = args[0]; // 从命令行参数获取字符串数字
Byte byNum = Byte.valueOf(number); // 将字符串转换为 Byte
Short shNum = Short.valueOf(number); // 将字符串转换为 Short
Integer num = Integer.valueOf(number); // 将字符串转换为 Integer
Long lgNum = Long.valueOf(number); // 将字符串转换为 Long
System.out.println("输出"); // 输出结果
System.out.println(byNum); // 输出 Byte 值
System.out.println(shNum); // 输出 Short 值
System.out.println(num); // 输出 Integer 值
System.out.println(lgNum); // 输出 Long 值
}
}
在这个示例中,valueOf()
方法用于将对应的基本值转换为其包装类。若输入的数字大于 127,则程序将抛出 NumberFormatException
。编译该示例后,输出结果如下。
四. 字符类的各种方法
接下来,我们看一下 Character
类的例子,该类提供了多种方法来检测字符的类型。
class TestCharacter {
protected TestCharacter() { // 默认构造函数
}
public static void main(final String[] args) {
int count; // 声明计数器
char[] values = {'*', '7', 'q', ' ', 'Q'}; // 初始化字符数组
for (count = 0; count < values.length; count++) { // 遍历字符数组
if (Character.isDigit(values[count])) { // 检查是否为数字
System.out.println(values[count] + " 是数字");
}
if (Character.isLetter(values[count])) { // 检查是否为字母
System.out.println(values[count] + " 是字母");
}
if (Character.isWhitespace(values[count])) { // 检查是否为空格
System.out.println(values[count] + " 是空格");
}
if (Character.isUpperCase(values[count])) { // 检查是否为大写字母
System.out.println(values[count] + " 是大写字母");
}
if (Character.isLowerCase(values[count])) { // 检查是否为小写字母
System.out.println(values[count] + " 是小写字母");
}
if (Character.isUnicodeIdentifierStart(values[count])) { // 检查是否为有效的 Unicode 标识符的首字符
System.out.println(values[count] + " 是有效的 Unicode 标识符的首字符");
}
}
}
}
在上述示例中,程序初始化一个字符数组并利用 Character
类的方法检测每个元素的类型。例如,以下代码:
if (Character.isLetter(values[count])) { // 检测字符是否为字母
System.out.println(values[count] + " 是字母");
}
判断特定元素是否为字母。输出结果如下:
五. 总结
在 Java 中,基本数据类型(如 int
、char
和 boolean
)并不被视为对象。为了允许将这些类型作为对象进行操作,Java 在 java.lang
包中提供了包装类。每种基本类型都有一个对应的包装类,例如,int
对应 Integer
,boolean
对应 Boolean
。包装类在需要对象的上下文中使用基本数据类型时至关重要,例如在集合中。它们通过将基本值传递给构造函数来创建对象。由于 java.lang
包是自动导入的,因此 Java 程序中无需显式导入此包。