Java怎么计算字符个数

77次阅读
没有评论

共计 2572 个字符,预计需要花费 7 分钟才能阅读完成。

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

1、题目描述

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

输入描述:

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

输出描述:

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

输入例子:

ABCDEF
A

输出例子:

1

3、代码方案一

基本思路:定义 String、Char 变量 R11; 通过 getline、cin 输入变量 R11; 遍历 String 数组进行比较 R11; 输出 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 容器存储 R11; 寻找相等的 keyR11;value 加 1R11; 输出 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 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2572字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)