好吧,我认为自己了解基础知识和一些高级 Java,但仍然没有勇气开始编写我的想法。这是我想出的一个简单程序,它基本上输出您的文本中特定字母的数量(我认为我措辞错误......)这是我的代码:
public class gene {
public static void main(String[] args) {
String[] phrases = {"hello", "egg", "learning", "ferrero", "rocher",
"Horologe", "Twinling"};
int a=0;
int b=0;
int c=0;
int d=0;
int e=0;
int f=0;
int g=0;
int h=0;
int i=0;
int j=0;
int k=0;
int l=0;
int m=0;
int n=0;
int o=0;
int p=0;
int q=0;
int r=0;
int s=0;
int t=0;
int u=0;
int v=0;
int w=0;
int x=0;
int y=0;
int z=0;
for(int ii =0; ii <phrases.length; ii++){
char[] charphrases = phrases[ii].toCharArray();
for(int iii = 0; iii<charphrases.length; iii++){
switch(charphrases[iii]){
case ('a'):
a++;
break;
case ('b'):
b++;
break;
case ('c'):
c++;
break;
case ('d'):
d++;
break;
case ('e'):
e++;
break;
case ('f'):
f++;
break;
case ('g'):
g++;
break;
case ('h'):
h++;
break;
case ('i'):
i++;
break;
case ('j'):
j++;
break;
case ('k'):
k++;
break;
case ('l'):
l++;
break;
case ('m'):
m++;
break;
case ('n'):
n++;
break;
case ('o'):
o++;
break;
case ('p'):
p++;
break;
case ('q'):
q++;
break;
case ('r'):
r++;
break;
case ('s'):
s++;
break;
case ('t'):
t++;
break;
case ('u'):
u++;
break;
case ('v'):
v++;
break;
case ('w'):
w++;
break;
case ('x'):
x++;
break;
case ('y'):
y++;
break;
case ('z'):
z++;
break;
}
}
}
System.out.println("A:" + a + "\n" + "B:" + b + "\n" +"C:" + c + "\n" +"D:" + d + "\n" +"E:" + e + "\n" +"F:" + f + "\n" +"G:" + g + "\n" +"H:" + h + "\n" +"I:" + i+ "\n" +"J:" + j + "\n" +"K:" + k + "\n" +"L:" + l + "\n" +"M:" + m + "\n" +"N:" + n + "\n" +"O:" + o + "\n" +"P:" + p + "\n" +"Q:" + q + "\n" +"R:" + r+ "\n" +"S:" + s + "\n" +"T:" + t + "\n" +"U:" + u + "\n" +"V:" + v + "\n" +"W:" + w + "\n" +"X:" + x + "\n" +"Y:" + y + "\n" +"Z:" + z + "\n" + z);
}
}
正如您所看到的,对于这样一个简单的程序来说它非常长,并且毫无疑问有更短的方法来编写它。有人可以告诉我在哪里可以压缩程序以使其更短、更高效。
最佳答案
怎么样
int[] count = new int[26];
你可以做到
for(char c: string.toCharArray())
count[c - 'a']++;
关于java - 有更简单有效的方法来做到这一点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21343807/