我输入此程序来计算每个字符出现在字符串中的次数。
import java.util.Scanner;
public class fre {
public static void main(String[] args) {
Scanner s=new Scanner (System.in);
System.out.println("Enter a string");
String sent = s.nextLine();
String str=sent.toUpperCase();
int len=str.length();
char save[]=new char[len];
for (int i=0;i<len;i++){
save[i]=str.charAt(i);
}
char a=0;
int count=0;
for(int i=0;i<len;i++){
a=save[i];
for(int j=0;j<len;j++){
if(save[j]==a)
count ++;
}
}
for(int i=0;i<len;i++)
System.out.println(save[i]+" appears "+count+" number of times");
}
}
代码是非常错误的,有人可以指导我如何使用简单的函数来执行程序并告诉我在这里做错了什么?
答案 0 :(得分:2)
你可以通过
完成答案 1 :(得分:1)
怎么样
int[] count = new int[256];
for(int ch; (ch = System.in.read()) >= ' ';)
count[ch]++;
for(char ch = 0; ch < count.length; ch++)
if (count[ch] > 0)
System.out.println(ch + " appears " + count[ch] + " times");
答案 2 :(得分:0)
您有一个全局count
,而每个角色需要一个计数器。
尝试使用Map<Character, Integer>
存储字符串中每个字符的出现次数。
答案 3 :(得分:0)
每个角色需要一个单独的计数。现在你正在增加相同的数量。
答案 4 :(得分:0)
如果我理解你想要的是这样的话:
int count = StringUtils.countMatches("Auto-generated method stub", "e");
System.out.println(count);
StringUtils是来自apache http://commons.apache.org/proper/commons-lang/
的api答案 5 :(得分:0)
您还可以使用Collections.frequency(Collection<?> c, Object o)
方法来计算集合中元素的数量,因此下面的代码片段会为您提供字符串中的字符数。
String str=s.nextLine().toUpperCase();
char[] letters=str.toCharArray();
List<Character> cList = new ArrayList<Character>();
for(char c : letters) {
cList.add(c);
}
Set<Character> chSet=new HashSet<Character>(cList); //to get unique characters in the list
for(Character ch:chSet) {
System.out.println(ch+" "+Collections.frequency(cList, ch));
}