• 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
  • 相关阅读:
    简简单单教你如何用C语言实现获取当前所有可用网口!
    [安洵杯 2019]easy_web-1
    管理Linux终端的screen命令示例
    Linux OS源的问题记录
    003-第一代硬件系统环境搭建
    Git 客户端基本使用及新手常见问题
    Java PrintWriter.print()方法具有什么功能呢?
    Azure 机器学习:MLOps - 使用 Azure 机器学习进行模型管理、部署和监视
    战队集结 蓄势而发 | 网安朝阳·西门子白帽黑客大赛
    丁鹿学堂:转行前端开发很辛苦怎么办
  • 原文地址:https://blog.csdn.net/weixin_42673574/article/details/134066134