温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java怎么计算字符个数

发布时间:2021-12-17 16:45:03 来源:亿速云 阅读:580 作者:iii 栏目:云计算

这篇文章主要讲解了“Java怎么计算字符个数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么计算字符个数”吧!

1、题目描述

写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。

输入描述:

输入一个有字母和数字以及空格组成的字符串,和一个字符。

输出描述:

输出输入字符串中含有该字符的个数。

输入例子:

ABCDEF A

输出例子:

1

3、代码

方案一

基本思路:定义String、Char变量--通过getline、cin输入变量--遍历String数组进行比较--输出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<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容器存储--寻找相等的key--value加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怎么计算字符个数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI