字符串可以包含數字、字母、漢字或其他字符。使用Character類的isDigit()方法可以確定字符中的字符是否為數字,使用Character類的isLetter()方法可以確定字符中的字符是否為字母。壹個例子將介紹壹種判斷字符串中的字符是否為漢字的方法。通過這種方法,可以計算字符串中的漢字數。示例的運行效果如圖4.24所示。
實施程序
在Eclipse中創建壹個新項目ChineseCharacter,並在其中創建壹個ChineseCharacter.java文件。在該類的main方法中創建標準輸入流的scanner對象,並接收用戶輸入的字符串。我們在程序中使用matches()方法來統計該字符串中的漢字數。核心代碼如下:
protectedvoiddo _ button _ action performed(action event e){ string text = Chinese area . gettext();//獲取用戶輸入int amount = 0;//為(inti = 0;我& lttext . length();i++){//遍歷字符串的每個字符//使用正則表達式判斷字符是否屬於漢字編碼Boolean matches = pattern。匹配(“【\ u4e 00-\ u9fa 5】{ 0,} $“,“+文本。charat(I);If(匹配){//如果是漢字金額++;//累加計數器} } um field . settext(amount+““);//在文本框中顯示中文字符數}
代碼解析
這個例子的關鍵點是正則表達式的使用。Java為正則表達式提供了模式的編譯表示,該類提供的靜態方法matches()可以執行正則表達式匹配。此方法編譯給定的正則表達式並嘗試匹配給定的輸入。如果要匹配的字符序列與正則表達式匹配,則返回true,否則返回false。其聲明語法如下:
publistaticbooleanmatches(string egex,CharSequenceinput);知識擴展
正則表達式可以用來方便地操作字符串。正則表達式通常用於驗證用戶輸入的信息,例如判斷用戶輸入的格式是否正確。在這個例子中,使用正則表達式來判斷用戶輸入的字符串是否是漢字。如果是漢字,計數器加1,最終得到字符串中所有漢字的個數。