1.7 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 對象。
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.27 递归算法
- 下一篇: 1.21 实例:统计商品信息