本文将为大家带来“自定义函数之字符类型统计”算法的一个解法与详细解释,方法不唯一,本篇文章只列举出一种方法,可以先练习,练习之后查看代码,这样更加有助于提高。
一、题目
题目描述:
编写一函数,由实参传来一个字符串
统计此字符串中字母、数字、空格和其它字符的个数
在主函数中输入字符串以及输出上述结果。
只要结果,别输出什么提示信息。
输入:
一行字符串
输出:
统计数据,4个数字,空格分开
样例输入:
!@#$%^QWERT 1234567
样例输出:
5 7 4 6
运行结果:
以下是本题的解题思路,仅供参考。
二、解题思路
看到这道题,无疑还是将字符串变成字符数组,对每个字符进行判断。
(1)做这道题,就要知道什么是字母,什么是数字,什么是字符。
(2)如果知道判断的条件,则用if else-if进行判断即可。
三、代码(含详细注解)
public class SeptemberFifteen40 {
public static void main(String[] args) {
//创建控制台扫描器
Scanner input = new Scanner(System.in);
/*一般输入空格或者换行符号是默认输入结束,
所以要输入空格可以用nextLine(),
表示输入一行内容,只有遇到换行时结束,
这是这个题目需要注意的*/
String str = input.nextLine();
//将字符串传给自定义函数
count(str);
}
//自定义一个函数count
public static void count(String str){
//将字符串转为字符数组
char c [] = str.toCharArray();
//定义字母、数字、空格和其它字符的个数
int number=0;
int letter=0;
int space=0;
int other=0;
//循环统计
for(int i=0 ; i<c.length ;i++){
if(c[i]>='0'&&c[i]<='9'){
//判断数字
number++;
}else if(c[i]>='a'&&c[i]<='z'||c[i]>='A'&&c[i]<='Z'){
//判断字母
letter++;
}else if(c[i]==' '){
space++;
}else{
other++;
}
}
//依次输出字母,数字,空格,其他字符
System.out.println(letter+" "+number+" "+space+" "+other);
}
}
希望本篇文章可以给您带来收获,有兴趣的小伙伴点个关注一起学习吧。