這篇文章主要講解了“Java怎么計(jì)算字符個(gè)數(shù)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java怎么計(jì)算字符個(gè)數(shù)”吧!
創(chuàng)新互聯(lián)是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷、企業(yè)網(wǎng)站建設(shè),賣鏈接,1元廣告為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計(jì)到用戶體驗(yàn)提高,創(chuàng)新互聯(lián)力求做到盡善盡美。
寫出一個(gè)程序,接受一個(gè)有字母和數(shù)字以及空格組成的字符串,和一個(gè)字符,然后輸出輸入字符串中含有該字符的個(gè)數(shù)。不區(qū)分大小寫。
輸入描述:
輸入一個(gè)有字母和數(shù)字以及空格組成的字符串,和一個(gè)字符。
輸出描述:
輸出輸入字符串中含有該字符的個(gè)數(shù)。
輸入例子:
ABCDEF A
輸出例子:
1
基本思路:定義String、Char變量--通過getline、cin輸入變量--遍歷String數(shù)組進(jìn)行比較--輸出count。
//適合任何字符輸入 #include<iostream> #include<string> using namespace std; int main(){ string inputString; char inputChar; getline(cin,inputString); //getline從標(biāo)準(zhǔn)輸入設(shè)備上讀入字符,然后返回給輸入流cin,這里是將數(shù)據(jù)綁定到變量inputString上面 cin>>inputChar; //scanf("%c",&inputChar); //以上是兩種輸入的方式:cin和scanf() int count=0; for(int i=0;i<inputString.length();++i){ //for(int i=0;i<inputString.length();i++) if(inputString[i]==inputChar) count++; } cout<<count<<endl; return 0; }
說明:單一字符的輸入方法:cin和scanf(),字符串的輸入方法getline()。
我們也可以采用數(shù)組進(jìn)行統(tǒng)計(jì)字符個(gè)數(shù):
//僅適用于字母輸入,了解即可不推薦 #include "stdafx.h" #include <stdio.h> #include <math.h> #include <iostream> #include <String> using namespace std; int main() { int charNum[26]; for(int i =0; i<26; i++) { charNum[i] = 0; } string str; cout<<"please input a string : "<<endl; getline(cin,str); int strLen = str.length(); for(int i=0; i < strLen; i++) { char s = str.at(i); if(s >= 'A' && s <= 'Z') { int n = s - 'A'; charNum[n]++; } else if( s >= 'a' && s <= 'z') { int n = s - 'a'; charNum[n]++; } } for(int i = 0; i< 26; i++) { char char_A = 'A' + i; cout<<" the num of the char :"<<char_A<<" = "<<charNum[i]<<endl; } system("pause"); return 0; }
基本思路:借助map容器存儲(chǔ)--尋找相等的key--value加1--輸出value
//依據(jù)下面操作進(jìn)行改進(jìn)即可: #include <iostream> #include <map> #include <stdio.h> using namespace std; int main(){ map<char,int>inputString; //這里的輸入String作為單一的char類型進(jìn)行存儲(chǔ) char inputChar; while ((inputChar=getchar())) { //getchar函數(shù)的功能是從鍵盤上輸入一個(gè)字符,這里是將輸入的字符綁定到變量inputChar上 if(inputChar=='\n') //如果是換行,則持續(xù)檢查輸入字符,因?yàn)閾Q行是不作為一個(gè)字符處理的 break; //一開始輸入的時(shí)候沒有換行,先執(zhí)行else的語句,即把map初始化,然后換行輸入待比較的字符,即執(zhí)行break跳出這個(gè)while else inputString[inputChar]++; //如果對(duì)應(yīng)的key,即char字符相等,則value加1 //這里其實(shí)就是對(duì)map進(jìn)行初始化 } //以上是通過inputChar對(duì)inputString Map賦值 cin>>inputChar; //這里輸入的是字符,而不是字符串 cout<<inputString[inputChar]<<endl; //這里不能區(qū)分大小寫字母,即a與A作為兩個(gè)字符處理,需要改進(jìn) return 0; }
以上程序未區(qū)分大小寫,作如下改進(jìn):
//適合任意類型的字符串 #include <iostream> #include <map> #include <stdio.h> //必須引入這個(gè)頭文件,否則getchar()會(huì)報(bào)錯(cuò) using namespace std; int main() { map<char,int>words; char ch; while ((ch=getchar())) { if(ch=='\n') break; else words[ch]++; } cin>>ch; if((ch>='a')&&(ch<='z')) { cout<<words[ch]+words[ch-32]<<endl; //如果是小寫字母,則減去32求得大寫字母的數(shù)目,輸出二者之和,大小寫字母ASCII碼相差32,且小寫字母數(shù)值大 } else if ((ch>='A')&&(ch<='Z')) { cout<<words[ch]+words[ch+32]<<endl; } //這里把大小寫字符當(dāng)做一個(gè)來處理 else cout<<words[ch]<<endl; //如果不是字母輸入,同樣可以輸出,這樣使得該程序可以適應(yīng)各種數(shù)據(jù)類型的字符串 return 0; }
感謝各位的閱讀,以上就是“Java怎么計(jì)算字符個(gè)數(shù)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Java怎么計(jì)算字符個(gè)數(shù)這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
當(dāng)前文章:Java怎么計(jì)算字符個(gè)數(shù)
網(wǎng)頁(yè)URL:http://bm7419.com/article40/jdjseo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站維護(hù)、網(wǎng)站內(nèi)鏈、網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)