Java Character类 图片看不了?点击切换HTTP 返回上层
Character 类是字符数据类型 char 的包装类。Character 类的对象包含类型为 char 的单个字段,这样能把基本数据类型当对象来处理,其常用方法如表 1 所示。
可以从 char 值中创建一个 Character 对象。例如,下列语句为字符 S 创建了一个 Character 对象。
CompareTo() 方法将这个字符与其他字符比较,并且返回一个整型数组,这个值是两个字符比较后的标准代码差值。当且仅当两个字符相同时,equals() 方法的返回值才为 true。如下面的代码:
(1) 创建 Register 类,在该类中创建 validateUser() 方法,对用户输入的用户名、密码和年龄进行验证,代码如下:
在 validateUser() 方法中,使用 for 循环遍历用户输入的用户名、密码和年龄,对其每个字符进行验证,判断其是否符合要求。在验证的过程中,分别使用了 Character 类的 isLetter() 方法、isLetterOrDigit() 方法和 isDigit() 方法。
(2) 编写测试类 Test04,调用 Register 类中的 validateUser() 方法,对用户输入的数据进行验证,并输出验证结果,代码如下:
在 main() 方法中,通过调用 Register 类的 validateUser() 方法,获取一个 boolean 类型的变量,即表明是否验证通过。当变量值为 true 时,表示验证通过,输出注册成功的提示信息;否则表示验证未通过,输出注册失败的提示信息。
运行该程序,当注册的用户名并非全部由字母组成时,提示“用户名只能由字母组成, 且不能含有空格!”信息,如下所示。
当注册的年龄并非只有数字组成时,则提示“年龄输入有误!”,如下所示。
当注册的密码并非只由数字或字母组成时,提示“密码只能由数字或字母组成!”,如下所示。
如果注册的用户名、密码和年龄都通过验证,则输出“注册成功!”,如下所示。
方法 | 描述 |
---|---|
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 2 3 4 5 6 7 | 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() 方法,对用户输入的用户名、密码和年龄进行验证,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | 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) 编写测试类 Test04,调用 Register 类中的 validateUser() 方法,对用户输入的数据进行验证,并输出验证结果,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import java.util.Scanner; public class Test04 { 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 时,表示验证通过,输出注册成功的提示信息;否则表示验证未通过,输出注册失败的提示信息。
运行该程序,当注册的用户名并非全部由字母组成时,提示“用户名只能由字母组成, 且不能含有空格!”信息,如下所示。
1 2 3 4 5 6 7 8 9 | ------------用户注册-------------- 用户名: tg_xiake 密码: xiake 年龄: 123 用户名只能由字母组成,且不能含有空格! 注册失败! |
当注册的年龄并非只有数字组成时,则提示“年龄输入有误!”,如下所示。
1 2 3 4 5 6 7 8 9 | ------------用户注册-------------- 用户名: admin 密码: admin 年龄: 123a 年龄输入有误! 注册失败! |
当注册的密码并非只由数字或字母组成时,提示“密码只能由数字或字母组成!”,如下所示。
1 2 3 4 5 6 7 8 9 | ------------用户注册-------------- 用户名: admin 密码: admin! 年龄: 25 密码只能由数字或字母组成! 注册失败! |
如果注册的用户名、密码和年龄都通过验证,则输出“注册成功!”,如下所示。
1 2 3 4 5 6 7 8 | ------------用户注册-------------- 用户名: admin 密码: admin 年龄: 123 注册成功! |