2 jiankeabcd jiankeabcd 于 2016.05.10 10:57 提问

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
q4444tita   2016.05.10 11:37
已采纳

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

plok61
plok61   2016.05.10 11: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方法里面的代码。
Csdn user default icon
上传中...
上传图片
插入图片