java计算字符串中字符频率的最简单方法是什么?
我想计算字母表中的每个字符在字符串中出现的次数
这就是我到目前为止所做的:
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");
}
}
# 1 楼答案
如果我理解您的问题,那么您可以使用
int
数组来存储计数。然后根据字符值计算正确的位置。差不多# 2 楼答案
# 3 楼答案
使用实现
Map
接口的类。让每个Char
映射到一个Integer
,它表示Char
出现的时间。迭代字符串,增加字符映射中的计数# 4 楼答案
您可能可以使用地图界面并执行以下操作:
这将计算所有字符并给您计数