我想计算字母表中每个字符出现在字符串中的次数。
这是我到目前为止所做的:
Scanner input = new Scanner(System.in);
PrintStream out = System.out;
out.print("Enter the string : ");
String na = input.nextLine();
String n = na.toUpperCase();
int l = n.length() ;
int len = l;
int a1 =0 , b =0, c =0, d=0 , e =0 ,f=0 ,g =0 ,h =0, u=0 ,i1 =0,j=0 ,k=0 ,l1=0 ,m=0, n1=0, o=0, p=0, q=0,r=0,s=0, t1=0 , v=0, w=0, x=0, y=0, z = 0;
for (int i = 0; i< len ; i++)
{
char a = n.charAt(i);
if(n.charAt(i) =='A')
{
a1++;
}
else if(n.charAt(i) =='B')
{
b++;
}
else if(n.charAt(i) =='C')
{
c++;
}
else if(n.charAt(i) =='D')
{
d++;
}
else if(n.charAt(i) =='E')
{
e++;
}
else if(n.charAt(i) =='F')
{
f++;
}
else if(n.charAt(i) =='G')
{
g++;
}
else if(n.charAt(i) =='H')
{
h++;
}
else if(n.charAt(i) =='I')
{
i1++;
}
else if(n.charAt(i) =='J')
{
j++;
}
else if(n.charAt(i) =='K')
{
k++;
}
else if(n.charAt(i) =='L')
{
l++;
}
else if(n.charAt(i) =='M')
{
m++;
}
else if(n.charAt(i) =='N')
{
n1++;
}
else if(n.charAt(i) =='O')
{
o++;
}
else if(n.charAt(i) =='P')
{
p++;
}
else if(n.charAt(i) =='Q')
{
q++;
}
else if(n.charAt(i) =='R')
{
r++;
}
}
out.print(a1+"A" +b+"B"+c+"C"+d+"D"+e+"E"+f+"F"+g+"G"+h+"H"+i1+"I"+j+"J"+k+"K"+l1+"L"+m+"M"+n1+"N"+o+"O"+p+"P"+q+"Q"+r+"R");
}
}
答案 0 :(得分:4)
您可以使用地图界面并执行以下操作:
Map<Character,Integer> map = new HashMap<Character,Integer>();
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (map.containsKey(ch)) {
int cnt = map.get(ch);
map.put(ch, ++cnt);
} else {
map.put(ch, 1);
}
}
这将计算所有字符并给你计数。
答案 1 :(得分:2)
使用实现Map
接口的类。将每个Char
映射到Integer
,表示Char
出现的时间。遍历字符串,递增字符映射中的计数。
答案 2 :(得分:0)
如果我理解了您的问题,那么您可以使用int
数组来存储您的计数。然后根据字符值计算正确的位置。像
System.out.println("Enter the string : ");
String line = scanner.nextLine();
int[] alphabet = new int['z' - 'a'];
for (char ch : line.toLowerCase().toCharArray()) {
alphabet[ch - 'a']++;
}
for (int i = 0; i < alphabet.length; i++) {
if (i != 0) System.out.print(", ");
System.out.printf("'%c' = %d",
Character.toUpperCase('a' + i), alphabet[i]);
}
答案 3 :(得分:0)
String na = "A MixXx of LeTTers";
char lowercase = 'a';
char uppercase = 'A';
for(int i=0; i < 26; i++){
int count_of_tagert_lower = 0;
int count_of_tagert_upper = 0;
for(String str : na.split("")){
if (str.contains(String.valueOf(lowercase))){
count_of_tagert_lower++;
}
else if (str.contains(String.valueOf(uppercase))){
count_of_tagert_upper++;
}else{
//just in case?
}
}
System.out.println(String.valueOf(lowercase) + " occured " + count_of_tagert_lower);
System.out.println(String.valueOf(uppercase) + " occured " + count_of_tagert_upper);
uppercase++;
lowercase++;
}
}