jiankeabcd
jiankeabcd
采纳率73.9%
2016-05-10 02:57 阅读 1.8k
已采纳

java 计算输入英文句子中出现过的字母的次数

不区分大小写,大写字母一律先变换成小写字母再计算

输入
This is a pen.

输出
a : 1
b : 0
c : 0
d : 0
e : 1
f : 0
g : 0
h : 1
i : 2
j : 0
k : 0
l : 0
m : 0
n : 1
o : 0
p : 1
q : 0
r : 0
s : 2
t : 1
u : 0
v : 0
w : 0
x : 0
y : 0
z : 0

使用代码雏形

  import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int[] chars = new int[256];
while(sc.hasNextLine()) {
String line = sc.nextLine();
for (int i= 0; i< line.length(); i++) {
char ch= Character.toLowerCase(line.charAt(i));
// … 随着ch的出现更新结构体…
}
}
for(char ch= 'a'; ch<= 'z'; ch++) {
System.out.println(ch+ " : " + chars[ch]);
}
}
}

应该只需要写注释部分的代码

编程弱鸡,求大神指导

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    q4444tita 青春逝如流水 2016-05-10 03:37

    chars[ch]++;
    if("0".equals(line)){break;}//这里输入0的时候中止,你也可以设置别的
    亲测可用

    点赞 评论 复制链接分享
  • plok61 闷_ 2016-05-10 03:46

    Scanner sc= new Scanner(System.in);
    int[] chars = new int[26];
    while(sc.hasNextLine()){
    String line = sc.nextLine();
    for(int i=0;i<line.length();i++){
    for(int j=0;j<26;j++){
    char[] b = Character.toChars(97+j);
    if(line.charAt(i)==b[0]){
    chars[j]=chars[j]+1;
    }
    }
    }
    for(int i=0;i<26;i++){
    char[] a = Character.toChars(97+i);
    System.out.println(a[0]+":"+chars[i]);
    }
    }

        这是main方法里面的代码。
    
    点赞 评论 复制链接分享

相关推荐