共計 2572 個字符,預計需要花費 7 分鐘才能閱讀完成。
這篇文章主要講解了“Java 怎么計算字符個數”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學習“Java 怎么計算字符個數”吧!
1
、題目描述
寫出一個程序,接受一個有字母和數字以及空格組成的字符串,和一個字符,然后輸出輸入字符串中含有該字符的個數。不區分大小寫。
輸入描述:
輸入一個有字母和數字以及空格組成的字符串,和一個字符。
輸出描述:
輸出輸入字符串中含有該字符的個數。
輸入例子:
ABCDEF
A
輸出例子:
1
3、代碼方案一
基本思路:定義 String、Char 變量 R1
1
; 通過 getline、cin 輸入變量 R1
1
; 遍歷 String 數組進行比較 R1
1
; 輸出 count。
// 適合任何字符輸入
#include iostream
#include string
using namespace std;
int main(){
string inputString;
char inputChar;
getline(cin,inputString);
//getline 從標準輸入設備上讀入字符,然后返回給輸入流 cin, 這里是將數據綁定到變量 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()。
我們也可以采用數組進行統計字符個數:
// 僅適用于字母輸入,了解即可不推薦
#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 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 容器存儲 R1
1
; 尋找相等的 keyR1
1
;value 加 1
R1
1
; 輸出 value
// 依據下面操作進行改進即可:#include iostream
#include map
#include stdio.h
using namespace std;
int main(){
map char,int inputString;
// 這里的輸入 String 作為單一的 char 類型進行存儲
char inputChar;
while ((inputChar=getchar())) {
//getchar 函數的功能是從鍵盤上輸入一個字符, 這里是將輸入的字符綁定到變量 inputChar 上
if(inputChar== \n)
// 如果是換行,則持續檢查輸入字符,因為換行是不作為一個字符處理的
break;
// 一開始輸入的時候沒有換行,先執行 else 的語句,即把 map 初始化,然后換行輸入待比較的字符,即執行 break 跳出這個 while
else
inputString[inputChar]++;
// 如果對應的 key,即 char 字符相等,則 value 加 1
// 這里其實就是對 map 進行初始化
}
// 以上是通過 inputChar 對 inputString Map 賦值
cin inputChar;
// 這里輸入的是字符,而不是字符串
cout inputString[inputChar] endl;
// 這里不能區分大小寫字母,即 a 與 A 作為兩個字符處理,需要改進
return 0;
}
以上程序未區分大小寫,作如下改進:
// 適合任意類型的字符串
#include iostream
#include map
#include stdio.h
// 必須引入這個頭文件,否則 getchar() 會報錯
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 求得大寫字母的數目,輸出二者之和,大小寫字母 ASCII 碼相差 32,且小寫字母數值大
}
else if ((ch = A) (ch = Z)) {
cout words[ch]+words[ch+32] endl;
}
// 這里把大小寫字符當做一個來處理
else
cout words[ch] endl;
// 如果不是字母輸入,同樣可以輸出,這樣使得該程序可以適應各種數據類型的字符串
return 0;
}
感謝各位的閱讀,以上就是“Java 怎么計算字符個數”的內容了,經過本文的學習后,相信大家對 Java 怎么計算字符個數這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關知識點的文章,歡迎關注!
正文完