根據(jù)Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")來匹配
昌邑網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),昌邑網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為昌邑上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的昌邑做網(wǎng)站的公司定做!
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
String?src?=?"王大錘+wefw";
char[]?t1?=?null;
t1?=?src.toCharArray();
int?t0?=?t1.length;
int?count?=?0;
for?(int?i?=?0;?i??t0;?i++)?{
if?(Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+"))?{
count?++;
}
}
System.out.println(count);
}
【實(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è)诔绦蛑惺褂胢atches()方法來統(tǒng)計(jì)該字符串中漢字的個(gè)數(shù)。核心代碼如下所示:
protectedvoiddo_button_actionPerformed(ActionEvente){Stringtext=chineseArea.getText();//獲取用戶輸入intamount=0;//創(chuàng)建漢字?jǐn)?shù)量計(jì)數(shù)器for(inti=0;itext.length();i++){//遍歷字符串每一個(gè)字符//使用正則表達(dá)式判斷字符是否屬于漢字編碼booleanmatches=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。其聲明語法如下:
publicstaticbooleanmatches(Stringregex,CharSequenceinput);【知識(shí)擴(kuò)展】
使用正則表達(dá)式可以方便地進(jìn)行字符串操作,正則表達(dá)式經(jīng)常被用來驗(yàn)證用戶輸入的信息,如可以判斷用戶輸入的格式是否正確。本實(shí)例中使用正則表達(dá)式來判斷用戶輸入的字符串是否為漢字,如果為漢字則計(jì)數(shù)器加1,最后得到字符串中所有漢字的數(shù)量。
其實(shí)直接把要統(tǒng)計(jì)的字?jǐn)?shù)放在一個(gè)字符串里就行了string str = "";
然后再用string的length方法就可以統(tǒng)計(jì)字符串長(zhǎng)度了。
string str = "xxxxx";
int strlen = str.length();
system.out.print(strlen);
打印出來的數(shù)字就是所輸入的字?jǐn)?shù)(這里是包括標(biāo)點(diǎn)符號(hào)的,如果要去標(biāo)點(diǎn)空格可以用正則表達(dá)式)
由于名字是一樣的,只需要利用循環(huán)結(jié)構(gòu),控制名字后面的數(shù)字就可以了,為了有良好的編程習(xí)慣,還要注意編程時(shí)的縮進(jìn)。
其實(shí)現(xiàn)如下所寫:
public class OutName
{
public static void main(String [] args)
{
for(i=1;i=100;i++)
{
System.out.println("李三"+i);
}
}
}
他沒定義i,運(yùn)行不了
這個(gè)行
public class q1 {
public static void main(String [] args) {
for(int i = 1; i = 100; i ++)
System.out.println("李三" + i);
}
}