在Java中如何统计一个字符串中所有字符出现的次数

dengfangping 2007-10-31 09:21:38
如输入abcdad,那么得到的结果是

a为2个

b为1个

c为1个

d为2个


还有一个问题,怎么判断我输入的字符串中的字符都是不同的,如果输入相同就提示,


如abfdha.

就提示输出 a重复

要考虑效率问题
...全文
7263 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rypgood 2007-11-02
  • 打赏
  • 举报
回复 1
偶也来写一个,满足楼主要求的,嘿嘿,就是太长



public class Test
{
public static void main(String args[])
{
new Test().strcount("abcdeabadefgacm");
}
public void strcount(String str)
{
int len=str.length();
int index=1;
Strcount stc[]=new Strcount[len];
stc[0]=new Strcount(str.charAt(0));
for(int i=1;i<len;i++)
{
inner:for(int j=0;j<index;j++)
{
if(stc[j].ch==str.charAt(i))
{
stc[j].plus();
break inner;
}
if(j==index-1)
{
stc[index++]=new Strcount(str.charAt(i));
break inner;
}
}
}
for(int i=0;i<index;i++)
{
System.out.println(stc[i].ch+" : "+stc[i].count);
if(stc[i].count>1)
System.out.println(stc[i].ch+"重复");
}
}
}
class Strcount
{
int count;
char ch;
public Strcount(char ch)
{
count=1;
this.ch=ch;
}
public void plus()
{
count++;
}
}

网络咖啡 2007-11-01
  • 打赏
  • 举报
回复
&apos是单引号,论坛自动转换的
dengfangping 2007-11-01
  • 打赏
  • 举报
回复
Mailbomb 的代码我看不懂啊,Java中有&apos吗?

还有怎么判断我们输入的字符都是不同的啊?
网络咖啡 2007-10-31
  • 打赏
  • 举报
回复
//以下代码只能统计小写字母,且必须为小写字母

String s = "abcsda";

//存储字符出现的次数,下标0存储a出现的次数,1存储b出现的次数,依次类推
int[] num = new int[26];

int len = s.length();

for(int i = 0;i < len;i++){
num[s.charAt(i) - 'a']++;
}

for(int i = 0;i < 26;i++){
if(num[i] > 0){
System.out.println((char)(i + 'a') +" " + num[i] + "个");
}
}
johnsoncr 2007-10-31
  • 打赏
  • 举报
回复 1
回复第一问:

import java.util.*;
public class Test {
public static void main(String args[]){
String s = "abcdad"; //待测试的字符串
Map<Character, Integer> result = getCharMaps(s);
System.out.println(result);//打印出字符串中各字符出现的次数!

}
public static Map<Character, Integer> getCharMaps(String s) {
Map<Character, Integer> map = new HashMap<Character, Integer>();
for(int i = 0; i < s.length(); i++) {
Character c = s.charAt(i);
Integer count = map.get(c);
map.put(c, count == null ? 1 : count + 1);
}
return map;

}

}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧