Java怎么計(jì)算字符個(gè)數(shù)

這篇文章主要講解了“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)力求做到盡善盡美。

1、題目描述

寫出一個(gè)程序,接受一個(gè)有字母和數(shù)字以及空格組成的字符串,和一個(gè)字符,然后輸出輸入字符串中含有該字符的個(gè)數(shù)。不區(qū)分大小寫。

輸入描述:

輸入一個(gè)有字母和數(shù)字以及空格組成的字符串,和一個(gè)字符。

輸出描述:

輸出輸入字符串中含有該字符的個(gè)數(shù)。

輸入例子:

ABCDEF
A

輸出例子:

1

3、代碼

方案一

基本思路:定義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)

商城網(wǎng)站建設(shè)