Java中判断字符串中相同字符的个数

比如说我输入一个字符串"asssadz";
那么我在控制台上就要输出这样的结果:
a s d z
2 3 1 1

意思就是说我输入的字符串中有2个a ,3个s,1个d,1个z

public class CountChar
{
//根据输入的字符,保存在map集合中,map集合中的key代表字符,value代表字符个数
public static Map<char,int> count(String)
{
Map<char,int> charMap=new HashMap<char,int>();
char [] cs=String.toCharArray();
for(char c:cs)
{
charMap.put((charMap.get('c'))==0?1:charMap.get('c')+1);
}
}
//打印map集合中的的数据
public static void printCharCount(Map<char,int> map)
{
char [] cs=map.getKeys();
for(char c:cs)
{
int x=map.get(c);
System.out.println("字符是"+c+"的字母共有"+x+"个");
}
}
//main方法
public static void main(String [] args)
{
CountChar.printCharCount(CountChar.count("asssadz"));
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-29
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class CharacterSum {

public static void main(String[] args){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入若干字母:");
try {
String str = br.readLine();
int length = str.length();
int[] lowerResult = new int[26];
int[] upperResult = new int[26];

for(int i=0;i<26;i++){
lowerResult[i] = 0;
upperResult[i] = 0;
}

for(int i=0;i<length;i++){
if(str.charAt(i)>='a' && str.charAt(i)<='z'){
lowerResult[(int)str.charAt(i)-97] += 1;
}
if(str.charAt(i)>='A' && str.charAt(i)<='Z'){
upperResult[(int)(str.charAt(i)-65)] += 1;
}
}
System.out.println("===以下是小写字母统计==");
for(int k=0;k<26;k++){
System.out.print((char)(k+97) + ":" + lowerResult[k] + ", ");
if(k%10 == 0){
System.out.println();
}
}
System.out.println("\n===以下是大写字母统计==");
for(int k=0;k<26;k++){
System.out.print((char)(k+65) + ":" + upperResult[k] + ", ");
if(k%10 == 0){
System.out.println();
}
}

} catch (IOException e) {
System.out.println("IO读入错误");
e.printStackTrace();
}
}
}
相似回答