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 对象。

Character character = new Character('S');

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

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

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

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

public class Register {public static boolean validateUser(String uname,String upwd,String age) {boolean conUname = false;       // 用户名是否符合要求boolean conPwd = false;    // 密码是否符合要求boolean conAge = false;    // 年龄是否符合要求boolean con = false;    // 验证是否通过if (uname.length() > 0) {for (int i = 0;i < uname.length();i++) {// 验证用户名是否全部为字母,不能含有空格if (Character.isLetter(uname.charAt(i))) {conUname = true;} else {conUname = false;System.out.println("用户名只能由字母组成,且不能含有空格!");break;}}} else {System.out.println("用户名不能为空!");}if (upwd.length() > 0) {for (int j=0;j<upwd.length();j++) {// 验证密码是否由数字和字母组成,不能含有空格if (Character.isLetterOrDigit(upwd.charAt(j))) {conPwd = true;} else {conPwd = false;System.out.println("密码只能由数字或字母组成!");break;}}} else {System.out.println("密码不能为空!");}if (age.length() > 0) {for (int k = 0;k < age.length();k++) {// 验证年龄是否由数字组成if (Character.isDigit(age.charAt(k))) {conAge = true;} else {conAge = false;System.out.println("年龄输入有误!");break;}}} else {System.out.println("年龄必须输入!");}if (conUname && conPwd && conAge) {con = true;} else {con = false;}return con;}
}

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

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

import java.util.Scanner;
public class Test {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("------------用户注册--------------");System.out.println("用户名:");String username = input.next();System.out.println("密码:");String pwd = input.next();System.out.println("年龄:");String age = input.next();boolean con = Register.validateUser(username,pwd,age);if (con) {System.out.println("注册成功!");} else {System.out.println("注册失败!");}}
}

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

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

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

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

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

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

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

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

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

1.7 Character类相关推荐

  1. java Character类的一些简单的方法

    判断方法: 我们为什么要引入Character类,当然是为了我们方便操作,在进行单个的字符操作的时候,我们常常进行的操作有判断一个字符是否为字母isLetter(),判断一个字符是否为数字isDigi ...

  2. java转义字符_Java入门 - 语言基础 - 13.Character类

    1.概述 Character 类用于对单个字符进行操作. Character 类在对象中包装一个基本类型 char 的值 实例 char ch = 'a'; // Unicode 字符表示形式char ...

  3. 003_JDK的Character类对Comparable接口的实现

    1. JDK1.8中Character类对Comparable接口的实现 2. Character类对Comparable接口的实现, 比较的是两个字符的Unicode码的大型.

  4. Java Character 类

    Java Character 类 Character 类用于对单个字符进行操作. Character 类在对象中包装一个基本类型 char 的值 实例 char ch = 'a'; // Unicod ...

  5. Java之Character类

    Java之Character类 Character类 Character类用于对单个字符进行操作. Character类在对象中包装一个基本类型char的值. 在实际开发过程中,我们经常会遇到需要使用 ...

  6. Java黑皮书课后题第10章:10.24(实现Character类)在Java库中提供了Character类,给出你自己对这个类的实现(将新类命名为MyCharacter)

    代码解释 这里为区分不同题目,类名更改为Test24_MyCharacter.java 破题 这里的"破"和之前写的不太一样,不是动词,不是解决问题的意思 而是形容词 很明显这道题 ...

  7. java的character用法_Java中Character类的使用方法

    Character类的使用方法 Character:字符类型 1.属性. static int MIN_RADIX :返回最小基数. static int MAX_RADIX :返回最大基数. sta ...

  8. java+character类使用_Java Character类应用实例

    之前给大家讲了一下什么是Java Character类以及它的常用方法,下面的话要给大家分享的就是Java Character类的应用实例. 在注册会员的时候,要验证用户输入的用户名.密码.性别.年龄 ...

  9. (Java)Character类

    package com.book.lite;import sun.lwawt.macosx.CSystemTray;import java.util.Scanner;/*** @author zhan ...

最新文章

  1. linux如何判断光盘是否挂载,LInux下如何挂载光盘找rpm包的方法步骤
  2. flatform installer web 安装php_Windows server 2019 安装 IIS PHP 环境无标题笔记
  3. idea zookeeper的使用_学习ZooKeeper源码,就从这篇开始吧
  4. android 透明变成白色,android – 状态栏不透明但是白色
  5. node.js——麻将算法(二)赖子玩法
  6. 数据结构-顺序栈的基本操作(C语言实现)
  7. 超市库存管理系统 (SSM JAVA)
  8. Linux打包和解包
  9. svn服务器端 忽略文件夹,SVN忽略不需要版本控制的文件或者文件夹
  10. freeswitch java_freeSWITCH
  11. 软件工程(2019)结对编程第一次作业
  12. 墙面有几种装修方法_装修时墙面处理都有哪几种方式?
  13. 京东CEO刘强东事件在发酵,谎言终被破
  14. Android 进程间通信方式
  15. 天载优配解读全商场亏钱效应浓郁
  16. Android 音频降噪 webrtc 去回声
  17. 怎么向rabbitmq服务器发送消息,.Net使用RabbitMQ即时发消息Demo
  18. S32Kxxx bootloader之CAN bootloader
  19. 显示器该怎么选--关于色域的介绍
  20. 基于ensp的ospf-vlink实验

热门文章

  1. ​​​​​​​CV:利用cv2(加载人脸识别xml文件及detectMultiScale函数得到人脸列表)+keras的load_model(加载表情hdf5、性别hdf5)并标注
  2. python读取文件的常用方法
  3. 【STL源码剖析读书笔记】【第5章】关联式容器之set、map、multiset和multimap
  4. 蹭课神器NABCD分析
  5. Mosquitto配置----日志设置
  6. MATLAB之线性回归,逻辑回归,最小二乘法,梯度下降,贝叶斯,最大似然估计
  7. C++ Primer 5th笔记(chap 19 特殊工具与技术)枚举类型
  8. 《研磨设计模式》chap22 装饰模式Decorator(2)应用到场景
  9. java筑基期(9)----ajaxjson(1)
  10. 近世代数--环同态--环的第二同构定理