共计 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 小编将为大家推送更多相关知识点的文章,欢迎关注!
正文完