统计标点符号的次数 java_字符串中统计某字母的次数等【Java Base】

【题目】给你一个字符串,包含了空格等标点符号,要你计算出出现次数最多的字母和该字母出现的次数。

【code】:

private static void totalTimes(String str) {

char[] ch = str.toCharArray();

Map timesMap = new HashMap();

for (int i = 0; i < ch.length; i++) {

if ((ch[i] >= 65 && ch[i] <= 90) || (ch[i] >= 97 && ch[i] <= 122)) {

Integer freq = timesMap.get(ch[i]);

timesMap.put(ch[i], freq == null ? Integer.valueOf(1) : ++freq);

}

}

int charMaxIndex = Collections.max(timesMap.values());

int charMinIndex = Collections.min(timesMap.values());

Set maxSet = new HashSet();

Set minSet = new HashSet();

for(Map.Entry entry : timesMap.entrySet()){

if(entry.getValue().equals(charMaxIndex)){

maxSet.add(entry.getKey());

}

if(entry.getValue().equals(charMinIndex)){

minSet.add(entry.getKey());

}

}

System.out.println("出现最多的字母:" + maxSet);

System.out.println("出现次数:" + charMaxIndex);

System.out.println("出现最小的字母:" + minSet);

System.out.println("出现次数:" + charMinIndex);

}

当然,除了以上,每个人都会有自己心中的code,呵呵!如果不能利用到Java里的集合,那么就可能在数组上做文章了,如下:

String str = "hello wolrd wlllkdsfhksadfls?sdfls sdf.pqyutgvAAAxzsdfs " +

"lsdfj,ljsfd  ajfdsak sfksjdfisfsdkfj lsdfjsidf jsafdalsjfs sfskdfjs" ;

int [] strCounts = new int [ 255 ];

int biggestCount = 0 ;

char biggestCh = 0 ;

char ch = 0 ;

int currentCount = 0 ;

for ( int i = str.length() - 1 ; i >= 0 ; i--) {

ch = str.charAt(i);

currentCount = ++strCounts[ch];

if (currentCount > biggestCount) {

biggestCount = currentCount;

biggestCh = ch;

}

}

System.out.println(biggestCh);

System.out.println(biggestCount);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值