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

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

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

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


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

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

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


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

运行结果如下:

1.当注册的用户名并非全部由字母组成时,提示“用户名只能由字母组成, 且不能含有空格!”信息

------------用户注册--------------

用户名:

tg_xiake

密码:

xiake

年龄:

123

用户名只能由字母组成,且不能含有空格!

注册失败!


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

------------用户注册--------------

用户名:

admin

密码:

admin

年龄:

123a

年龄输入有误!

注册失败!


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

------------用户注册--------------

用户名:

admin

密码:

admin!

年龄:

25

密码只能由数字或字母组成!

注册失败!


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

------------用户注册--------------

用户名:

admin

密码:

admin

年龄:

123

注册成功!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

濯一一

你的鼓励:我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值