1.7 Character类
Character 類(lèi)是字符數(shù)據(jù)類(lèi)型 char 的包裝類(lèi)。Character 類(lèi)的對(duì)象包含類(lèi)型為 char 的單個(gè)字段,這樣能把基本數(shù)據(jù)類(lèi)型當(dāng)對(duì)象來(lái)處理,其常用方法如表 1 所示。
表 1 Character類(lèi)的常用方法
| void Character(char value) | 構(gòu)造一個(gè)新分配的 Character 對(duì)象,用以表示指定的 char 值 |
| char charValue() | 返回此 Character 對(duì)象的值,此對(duì)象表示基本 char 值 |
| int compareTo(Character anotherCharacter) | 根據(jù)數(shù)字比較兩個(gè) Character 對(duì)象 |
| boolean equals(Character anotherCharacter) | 將此對(duì)象與指定對(duì)象比較,當(dāng)且僅當(dāng)參數(shù)不是 null,而 是一個(gè)與此對(duì)象包含相同 char 值的 Character 對(duì)象時(shí), 結(jié)果才是 true |
| boolean isDigit(char ch) | 確定指定字符是否為數(shù)字,如果通過(guò) Character. getType(ch) 提供的字符的常規(guī)類(lèi)別類(lèi)型為 DECIMAL_DIGIT_NUMBER,則字符為數(shù)字 |
| boolean isLetter(int codePoint) | 確定指定字符(Unicode 代碼點(diǎn))是否為字母 |
| boolean isLetterOrDigit(int codePoint) | 確定指定字符(Unicode 代碼點(diǎn))是否為字母或數(shù)字 |
| boolean isLowerCase(char ch) | 確定指定字符是否為小寫(xiě)字母 |
| boolean isUpperCase(char ch) | 確定指定字符是否為大寫(xiě)字母 |
| char toLowerCase(char ch) | 使用來(lái)自 UnicodeData 文件的大小寫(xiě)映射信息將字符參數(shù)轉(zhuǎn)換為小寫(xiě) |
| char toUpperCase(char ch) | 使用來(lái)自 UnicodeData 文件的大小寫(xiě)映射信息將字符參數(shù)轉(zhuǎn)換為大寫(xiě) |
可以從 char 值中創(chuàng)建一個(gè) Character 對(duì)象。例如,下列語(yǔ)句為字符 S 創(chuàng)建了一個(gè) Character 對(duì)象。
Character character = new Character('S');CompareTo() 方法將這個(gè)字符與其他字符比較,并且返回一個(gè)整型數(shù)組,這個(gè)值是兩個(gè)字符比較后的標(biāo)準(zhǔn)代碼差值。當(dāng)且僅當(dāng)兩個(gè)字符相同時(shí),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
在注冊(cè)會(huì)員時(shí),需要驗(yàn)證用戶(hù)輸入的用戶(hù)名、密碼、性別、年齡和郵箱地址等信息是否符合標(biāo)準(zhǔn),如果符合標(biāo)準(zhǔn)方可進(jìn)行注冊(cè)。那么,下面就使用 Character 類(lèi)中的一些靜態(tài)方法來(lái)完成這個(gè)程序,具體的實(shí)現(xiàn)步驟如下。
1)創(chuàng)建 Register 類(lèi),在該類(lèi)中創(chuàng)建 validateUser() 方法,對(duì)用戶(hù)輸入的用戶(hù)名、密碼和年齡進(jìn)行驗(yàn)證,代碼如下:
public class Register {public static boolean validateUser(String uname,String upwd,String age) {boolean conUname = false; // 用戶(hù)名是否符合要求boolean conPwd = false; // 密碼是否符合要求boolean conAge = false; // 年齡是否符合要求boolean con = false; // 驗(yàn)證是否通過(guò)if (uname.length() > 0) {for (int i = 0;i < uname.length();i++) {// 驗(yàn)證用戶(hù)名是否全部為字母,不能含有空格if (Character.isLetter(uname.charAt(i))) {conUname = true;} else {conUname = false;System.out.println("用戶(hù)名只能由字母組成,且不能含有空格!");break;}}} else {System.out.println("用戶(hù)名不能為空!");}if (upwd.length() > 0) {for (int j=0;j<upwd.length();j++) {// 驗(yàn)證密碼是否由數(shù)字和字母組成,不能含有空格if (Character.isLetterOrDigit(upwd.charAt(j))) {conPwd = true;} else {conPwd = false;System.out.println("密碼只能由數(shù)字或字母組成!");break;}}} else {System.out.println("密碼不能為空!");}if (age.length() > 0) {for (int k = 0;k < age.length();k++) {// 驗(yàn)證年齡是否由數(shù)字組成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 循環(huán)遍歷用戶(hù)輸入的用戶(hù)名、密碼和年齡,對(duì)其每個(gè)字符進(jìn)行驗(yàn)證,判斷其是否符合要求。在驗(yàn)證的過(guò)程中,分別使用了 Character 類(lèi)的 isLetter() 方法、isLetterOrDigit() 方法和 isDigit() 方法。
2)編寫(xiě)測(cè)試類(lèi) Test,調(diào)用 Register 類(lèi)中的 validateUser() 方法,對(duì)用戶(hù)輸入的數(shù)據(jù)進(jìn)行驗(yàn)證,并輸出驗(yàn)證結(jié)果,代碼如下:
import java.util.Scanner; public class Test {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("------------用戶(hù)注冊(cè)--------------");System.out.println("用戶(hù)名:");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("注冊(cè)成功!");} else {System.out.println("注冊(cè)失敗!");}} }在 main() 方法中,通過(guò)調(diào)用 Register 類(lèi)的 validateUser() 方法,獲取一個(gè) boolean 類(lèi)型的變量,即表明是否驗(yàn)證通過(guò)。當(dāng)變量值為 true 時(shí),表示驗(yàn)證通過(guò),輸出注冊(cè)成功的提示信息;否則表示驗(yàn)證未通過(guò),輸出注冊(cè)失敗的提示信息。
運(yùn)行該程序,當(dāng)注冊(cè)的用戶(hù)名并非全部由字母組成時(shí),提示“用戶(hù)名只能由字母組成, 且不能含有空格!”信息,如下所示。
------------用戶(hù)注冊(cè)-------------- 用戶(hù)名: tg_xiake 密碼: xiake 年齡: 123 用戶(hù)名只能由字母組成,且不能含有空格! 注冊(cè)失敗!當(dāng)注冊(cè)的年齡并非只有數(shù)字組成時(shí),則提示“年齡輸入有誤!”,如下所示。
------------用戶(hù)注冊(cè)-------------- 用戶(hù)名: admin 密碼: admin 年齡: 123a 年齡輸入有誤! 注冊(cè)失敗!當(dāng)注冊(cè)的密碼并非只由數(shù)字或字母組成時(shí),提示“密碼只能由數(shù)字或字母組成!”,如下所示。
------------用戶(hù)注冊(cè)-------------- 用戶(hù)名: admin 密碼: admin! 年齡: 25 密碼只能由數(shù)字或字母組成! 注冊(cè)失敗!如果注冊(cè)的用戶(hù)名、密碼和年齡都通過(guò)驗(yàn)證,則輸出“注冊(cè)成功!”,如下所示。
------------用戶(hù)注冊(cè)-------------- 用戶(hù)名: admin 密碼: admin 年齡: 123 注冊(cè)成功!總結(jié)
以上是生活随笔為你收集整理的1.7 Character类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 1.27 递归算法
- 下一篇: 1.21 实例:统计商品信息