为了账号安全,请及时绑定邮箱和手机立即绑定

怎么用Java语言编写“读入一句话,统计26个大写字母各自出现的次数”

怎么用Java语言编写“读入一句话,统计26个大写字母各自出现的次数”

如题,可以都用if嵌套吗?还是while和if嵌套比较好?目前是考虑先转换成ASCII码,区分字母的大小写,如果是大写则相应字母+1,小写则跳出进行下一个比较,但我不知道代码怎么写了……
查看完整描述

2 回答

已采纳
?
助攻无敌

TA贡献5条经验 获得超4个赞

输入数据保存成string
string转char数组
定义一个计数变量,初始值为0
遍历数组,若当前数组内容属于大写字母的ASCII范围内则计数+1
打印计数变量得到结果

查看完整回答
反对 回复 2017-09-23
  • 助攻无敌
    助攻无敌
    若要实现所有字母各自次数则将计数变量定义成一个switch就行
  • 为了遇见最好的你
    为了遇见最好的你
    我是用if写的,定义了数组变量用来存储字母出现的次数
  • 为了遇见最好的你
    为了遇见最好的你
    import java.util.Scanner; public class momo { public static void main(String[] args) { Scanner scn = new Scanner(System.in); int[] charnum = new int[26]; System.out.println("请输入一串字符串"); String str = scn.nextLine(); str = str.trim(); for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); int ascii = (int)c; if(ascii >= 65 && ascii <= 90) { int index = ascii - (int)'A'; charnum[index] = charnum[index] + 1; } } for (int i = 0; i < charnum.length; i++) { if (charnum[i] != 0) { System.out.println("字母" + (char)(i + 'A') + "出现:" + charnum[i] + "次"); } } } }
点击展开后面1
?
窗下有梧桐

TA贡献5条经验 获得超3个赞

用while和if都不好,太冗长。用switch比较好,写起来也简单。

查看完整回答
反对 回复 2017-09-23
?
小猫过河

TA贡献26条经验 获得超15个赞

桶排序,可以去搜一下

查看完整回答
反对 回复 2017-09-22
?
onemoo

TA贡献883条经验 获得超454个赞

你肯定要循环比较字符串中的每个字符。至于用哪种方式进行循环都无所谓。也可以转为字符数组再用 Arrays 的相关方法来循环。

每次比较时需要区分 26 种情况,用 if 嵌套未免太啰嗦了,可以用 switch。

查看完整回答
反对 回复 2017-09-22
  • 2 回答
  • 0 关注
  • 7138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信