Java Boolean类,Java Character类,Java Number类

Boolean 类将基本类型为 boolean 的值包装在一个对象中。一个 Boolean 类的对象只包含一个类型为 boolean 的字段。此外,此类还为 boolean 和 String 的相互转换提供了很多方法,并提供了处理 boolean 时非常有用的其他一些常用方法。

Boolean 类的构造方法

Boolean 类有以下两种构造形式:


  1. Boolean(boolean boolValue);
  2. Boolean(String boolString);


其中 boolValue 必须是 true 或 false(不区分大小写),boolString 包含字符串 true(不区分大小写),那么新的 Boolean 对象将包含 true;否则将包含 false。

Boolean 类的常用方法

在 Boolean 类内部包含了一些和 Boolean 操作有关的方法,见表 1。
 

表 1 Boolean 类中的常用方法
方法 返回值 功能
booleanValue() boolean 将 Boolean 对象的值以对应的 boolean 值返回
equals(Object obj) boolean 判断调用该方法的对象与 obj 是否相等。当且仅当参数不是 null,且与调用该
方法的对象一样都表示同一个 boolean 值的 Boolean 对象时,才返回 true
parseBoolean(String s) boolean 将字符串参数解析为 boolean 值
toString() string 返回表示该 boolean 值的 String 对象
valueOf(String s) boolean 返回一个用指定的字符串表示的 boolean 值
例 1

编写一个 java 程序,演示如何使用不同的构造方法创建 Boolean 对象,并调用 booleanValue() 主法将创建的对象重新转换为 boolean 数据输出。代码如下:


  1. public class Test05 {
  2. public static void main(String[] args) {
  3. Boolean b1 = new Boolean(true);
  4. Boolean b2 = new Boolean("ok");
  5. Boolean b3 = new Boolean("true");
  6. System.out.println("b1 转换为 boolean 值是:" + b1);
  7. System.out.println("b2 转换为 boolean 值是:" + b2);
  8. System.out.println("b3 转换为 boolean 值是:" + b3);
  9. }
  10. }

程序非常简单,运行后的输出结果如下:

b1 转换为 boolean 值是:true
b2 转换为 boolean 值是:false
b3 转换为 boolean 值是:true

Boolean 类的常用常量

在 Boolean 类中包含了很多的常量,其中较为常用的常量如下。

  • TRUE:对应基值 true 的 Boolean 对象。
  • FALSE:对应基值 false 的 Boolean 对象。
  • TYPE:表示基本类型 boolean 的 Class 对象。

Java Character类

Character 类是字符数据类型 char 的包装类。Character 类的对象包含类型为 char 的单个字段,这样能把基本数据类型当对象来处理,其常用方法如表 1 所示。
 

表 1 Character类的常用方法
方法 描述
void Character(char value) 构造一个新分配的 Character 对象,用以表示指定的 char 值
char charValue() 返回此 Character 对象的值,此对象表示基本 char 值
int compareTo(Character anotherCharacter) 根据数字比较两个 Character 对象
boolean equals(Character anotherCharacter) 将此对象与指定对象比较,当且仅当参数不是 null,而 是一个与此对象
包含相同 char 值的 Character 对象时, 结果才是 true
boolean isDigit(char ch) 确定指定字符是否为数字,如果通过 Character. getType(ch) 提供的字
符的常规类别类型为 DECIMAL_DIGIT_NUMBER,则字符为数字
boolean isLetter(int codePoint) 确定指定字符(Unicode 代码点)是否为字母
boolean isLetterOrDigit(int codePoint) 确定指定字符(Unicode 代码点)是否为字母或数字
boolean isLowerCase(char ch) 确定指定字符是否为小写字母
boolean isUpperCase(char ch) 确定指定字符是否为大写字母
char toLowerCase(char ch) 使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为小写
char toUpperCase(char ch) 使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写


可以从 char 值中创建一个 Character 对象。例如,下列语句为字符 S 创建了一个 Character 对象。


  1. Character character = new Character('S');


CompareTo() 方法将这个字符与其他字符比较,并且返回一个整型数组,这个值是两个字符比较后的标准代码差值。当且仅当两个字符相同时,equals() 方法的返回值才为 true。如下面的代码:


  1. Character character = new Character('A');
  2. int result1 = character.compareTo(new Character('V'));
  3. System.out.println(result1); // 输出:0
  4. int result2 = character.compareTo(new Character('B'));
  5. System.out.println(resuit2); // 输出:-1
  6. int result3 = character.compareTo(new Character('1'));
  7. System.out.println(result3); // 输出:-2
例 1

在注册会员时,需要验证用户输入的用户名、密码、性别、年龄和邮箱地址等信息是否符合标准,如果符合标准方可进行注册。那么,下面就使用 Character 类中的一些静态方法来完成这个程序,具体的实现步骤如下。

1)创建 Register 类,在该类中创建 validateUser() 方法,对用户输入的用户名、密码和年龄进行验证,代码如下:


  1. public class Register {
  2. public static boolean validateUser(String uname,String upwd,String age) {
  3. boolean conUname = false; // 用户名是否符合要求
  4. boolean conPwd = false; // 密码是否符合要求
  5. boolean conAge = false; // 年龄是否符合要求
  6. boolean con = false; // 验证是否通过
  7. if (uname.length() > 0) {
  8. for (int i = 0;i < uname.length();i++) {
  9. // 验证用户名是否全部为字母,不能含有空格
  10. if (Character.isLetter(uname.charAt(i))) {
  11. conUname = true;
  12. } else {
  13. conUname = false;
  14. System.out.println("用户名只能由字母组成,且不能含有空格!");
  15. break;
  16. }
  17. }
  18. } else {
  19. System.out.println("用户名不能为空!");
  20. }
  21. if (upwd.length() > 0) {
  22. for (int j=0;j
  23. // 验证密码是否由数字和字母组成,不能含有空格
  24. if (Character.isLetterOrDigit(upwd.charAt(j))) {
  25. conPwd = true;
  26. } else {
  27. conPwd = false;
  28. System.out.println("密码只能由数字或字母组成!");
  29. break;
  30. }
  31. }
  32. } else {
  33. System.out.println("密码不能为空!");
  34. }
  35. if (age.length() > 0) {
  36. for (int k = 0;k < age.length();k++) {
  37. // 验证年龄是否由数字组成
  38. if (Character.isDigit(age.charAt(k))) {
  39. conAge = true;
  40. } else {
  41. conAge = false;
  42. System.out.println("年龄输入有误!");
  43. break;
  44. }
  45. }
  46. } else {
  47. System.out.println("年龄必须输入!");
  48. }
  49. if (conUname && conPwd && conAge) {
  50. con = true;
  51. } else {
  52. con = false;
  53. }
  54. return con;
  55. }
  56. }

在 validateUser() 方法中,使用 for 循环遍历用户输入的用户名、密码和年龄,对其每个字符进行验证,判断其是否符合要求。在验证的过程中,分别使用了 Character 类的 isLetter() 方法、isLetterOrDigit() 方法和 isDigit() 方法。

2)编写测试类 Test04,调用 Register 类中的 validateUser() 方法,对用户输入的数据进行验证,并输出验证结果,代码如下:


  1. import java.util.Scanner;
  2. public class Test04 {
  3. public static void main(String[] args) {
  4. Scanner input = new Scanner(System.in);
  5. System.out.println("------------用户注册--------------");
  6. System.out.println("用户名:");
  7. String username = input.next();
  8. System.out.println("密码:");
  9. String pwd = input.next();
  10. System.out.println("年龄:");
  11. String age = input.next();
  12. boolean con = Register.validateUser(username,pwd,age);
  13. if (con) {
  14. System.out.println("注册成功!");
  15. } else {
  16. System.out.println("注册失败!");
  17. }
  18. }
  19. }

在 main() 方法中,通过调用 Register 类的 validateUser() 方法,获取一个 boolean 类型的变量,即表明是否验证通过。当变量值为 true 时,表示验证通过,输出注册成功的提示信息;否则表示验证未通过,输出注册失败的提示信息。

运行该程序,当注册的用户名并非全部由字母组成时,提示“用户名只能由字母组成, 且不能含有空格!”信息,如下所示。

------------用户注册--------------
用户名:
tg_xiake
密码:
xiake
年龄:
123
用户名只能由字母组成,且不能含有空格!
注册失败!

当注册的年龄并非只有数字组成时,则提示“年龄输入有误!”,如下所示。

------------用户注册--------------
用户名:
admin
密码:
admin
年龄:
123a
年龄输入有误!
注册失败!

当注册的密码并非只由数字或字母组成时,提示“密码只能由数字或字母组成!”,如下所示。

------------用户注册--------------
用户名:
admin
密码:
admin!
年龄:
25
密码只能由数字或字母组成!
注册失败!

如果注册的用户名、密码和年龄都通过验证,则输出“注册成功!”,如下所示。

------------用户注册--------------
用户名:
admin
密码:
admin
年龄:
123
注册成功!

Java Number类

Number 是一个抽象类,也是一个超类(即父类)。Number 类属于 java.lang 包,所有的包装类(如 Double、Float、Byte、Short、Integer 以及 Long)都是抽象类 Number 的子类。

Number 类定义了一些抽象方法,以各种不同数字格式返回对象的值。如 xxxValue() 方法,它将 Number 对象转换为 xxx 数据类型的值并返回。这些方法如下表所示:
 

Number类的方法
方法 说明
byte byteValue();   返回 byte 类型的值
double doubleValue(); 返回 double 类型的值
float floatValue(); 返回 float 类型的值
int intValue(); 返回 int 类型的值
long longValue(); 返回 long 类型的值
short shortValue(); 返回 short 类型的值


抽象类不能直接实例化,而是必须实例化其具体的子类。如下代码演示了 Number 类的使用:


  1. Number num = new Double(12.5);
  2. System.out.println("返回 double 类型的值:" + num.doubleValue());
  3. System.out.println("返回 int 类型的值:" + num.intValue());
  4. System.out.println("返回 float 类型的值:" + num.floatValue());


执行上述代码,输出结果如下:

返回 double 类型的值:12.5
返回 int 类型的值:12
返回 float 类型的值:12.5

你可能感兴趣的:(java,开发语言)