C語言中文網 目錄

Java Character類

< 上一頁Java Number類 Java Boolean類下一頁 >

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) 編寫測試類 Test04,調用 Register 類中的 validateUser() 方法,對用戶輸入的數據進行驗證,并輸出驗證結果,代碼如下:
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 時,表示驗證通過,輸出注冊成功的提示信息;否則表示驗證未通過,輸出注冊失敗的提示信息。

運行該程序,當注冊的用戶名并非全部由字母組成時,提示“用戶名只能由字母組成, 且不能含有空格!”信息,如下所示。
------------用戶注冊--------------
用戶名:
tg_xiake
密碼:
xiake
年齡:
123
用戶名只能由字母組成,且不能含有空格!
注冊失敗!

當注冊的年齡并非只有數字組成時,則提示“年齡輸入有誤!”,如下所示。
------------用戶注冊--------------
用戶名:
admin
密碼:
admin
年齡:
123a
年齡輸入有誤!
注冊失敗!

當注冊的密碼并非只由數字或字母組成時,提示“密碼只能由數字或字母組成!”,如下所示。
------------用戶注冊--------------
用戶名:
admin
密碼:
admin!
年齡:
25
密碼只能由數字或字母組成!
注冊失敗!

如果注冊的用戶名、密碼和年齡都通過驗證,則輸出“注冊成功!”,如下所示。
------------用戶注冊--------------
用戶名:
admin
密碼:
admin
年齡:
123
注冊成功!
< 上一頁Java Number類 Java Boolean類下一頁 >

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo