• 招生咨詢熱線:4008-569-579 
  • 手機(jī)版
    用手機(jī)掃描二維碼直達(dá)商品手機(jī)版
招生咨詢熱線
4008-569-579
機(jī)構(gòu)主頁(yè) > 機(jī)構(gòu)新聞 > java語(yǔ)言中如何獲取字符串中漢字的個(gè)數(shù)
機(jī)構(gòu)主頁(yè) > 機(jī)構(gòu)新聞>java語(yǔ)言中如何獲取字符串中漢字的個(gè)數(shù)

java語(yǔ)言中如何獲取字符串中漢字的個(gè)數(shù)

來源:北京達(dá)內(nèi)教育        時(shí)間:2023-05-26        熱度:28℃        返回列表

【實(shí)例描述】

字符串中可以包含數(shù)字,字母、漢字或者其他字符。使用Character 類的isDigit()方法可以判斷字符中的某個(gè)字符是否為數(shù)字,使用Character 類的isLetter()方法可以判斷字符中的某個(gè)字符是否為字母。實(shí)例中將介紹一種方法用來判斷字符串中的某個(gè)字符是否為漢字,通過此方法可以計(jì)算字符串中漢字的數(shù)量。實(shí)例的運(yùn)行效果如圖4.24 所示。


【實(shí)現(xiàn)過程】

在Eclipse 中新建項(xiàng)目ChineseCharacter,并在其中創(chuàng)建一個(gè)ChineseCharacter.java 文件。在該類的主方法中創(chuàng)建標(biāo)準(zhǔn)輸入流的掃描器對(duì)象,接收用戶輸入的字符串。我們?cè)诔绦蛑惺褂?/span>matches()方法來統(tǒng)計(jì)該字符串中漢字的個(gè)數(shù)。核心代碼如下所示:

protected void do_button_actionPerformed(ActionEvent e) {

String text = chineseArea.getText();                       // 獲取用戶輸入

int amount = 0;                                            // 創(chuàng)建漢字?jǐn)?shù)量計(jì)數(shù)器

for (int i = 0; i < text.length(); i++) {                  // 遍歷字符串每一個(gè)字符

// 使用正則表達(dá)式判斷字符是否屬于漢字編碼

boolean matches = Pattern.matches("^[\u4E00-\u9FA5]{0,}$", ""

+ text.charAt(i));

if (matches) {                                               // 如果是漢字

amount++;                                                     // 累加計(jì)數(shù)器

}

}

umField.setText(amount + "");                                 // 在文本框顯示漢字?jǐn)?shù)量

}

【代碼解析】

本實(shí)例的關(guān)鍵點(diǎn)在于正則表達(dá)式的使用。Java 提供了Pattern 用于正則表達(dá)式的編譯表示形式,該類提供的靜態(tài)方法matches()可以執(zhí)行正則表達(dá)式的匹配。該方法編譯給定正則表達(dá)式并嘗試給定輸入與其匹配。如果要匹配的字符序列與正則表達(dá)式匹配則返回true,否則返回false。其聲明語(yǔ)法如下:

public static boolean matches(String regex,CharSequence input);

【知識(shí)擴(kuò)展】

使用正則表達(dá)式可以方便地進(jìn)行字符串操作,正則表達(dá)式經(jīng)常被用來驗(yàn)證用戶輸入的信息,如可以判斷用戶輸入的格式是否正確。本實(shí)例中使用正則表達(dá)式來判斷用戶輸入的字符串是否為漢字,如果為漢字則計(jì)數(shù)器加1,最后得到字符串中所有漢字的數(shù)量。

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部