找出并统计任意字符串中出现最多的字符

原创 2007年09月29日 23:21:00
一个字符串中可能包含a~z中的多个字符,如有重复,求出现次数最多的那个字母及次数,如有多个重复则都求出来。
/**//*
 * Main.java
 *
 * Created on 2007-9-28, 22:39:31
 *
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 
*/


package test;

import java.util.*;

/** *//**
 *
 * 
@author Jeffery
 
*/

public class Main ...{

    
/** *//**
     * 
@param args the command line arguments
     
*/

    
public static void main(String[] args) ...{
        String input 
= "aavzcadfdsfsdhshgWasdfasdfdddaaa";
        
new Main().doString(input);
    }


    
public void doString(String input) ...{
        
char[] chars = input.toCharArray();
        ArrayList
<String> lists = new ArrayList<String>();
        TreeSet
<String> set = new TreeSet<String>();
        
for (int i = 0; i < chars.length; i++...{
            lists.add(String.valueOf(chars[i]));
            set.add(String.valueOf(chars[i]));
        }

        System.out.println(set);
        Collections.sort(lists);
        System.out.println(lists);


        StringBuffer sb 
= new StringBuffer();
        
for (int i = 0; i < lists.size(); i++...{
            sb.append(lists.get(i));
        }


        input 
= sb.toString();
        System.out.println(input);
        
int max = 0;
        String maxString 
= "";
        ArrayList
<String> maxlist = new ArrayList<String>();

        Iterator
<String> its = set.iterator();
        
while (its.hasNext()) ...{
            String os 
= its.next();
            
int begin = input.indexOf(os);
            
int last = input.lastIndexOf(os);
            
int value = last - begin + 1;

            
if (value > max) ...{
                max 
= value;
                maxString 
= os;
                maxlist.add(os);
            }
 else if (value == max) ...{
                maxlist.add(os);
            }

        }

        
int index = 0;
        
for (int i = 0; i < maxlist.size(); i++...{
            
if (maxlist.get(i).equals(maxString)) ...{
                index 
= i;
                
break;
            }

        }


        System.out.print(
"The most occured character is ");
        
for (int i = index; i < maxlist.size(); i++...{
            System.out.print(maxlist.get(i) 
+ " ");
        }

        System.out.println();
        System.out.println(
"They occured " + max + " times");
    }

}
小结:
引入TreeSet:通过集合快速找到所有出现的字符,去除冗余;
引入ArrayList,使用快速排序,生成排序后的字符串;
如果频繁修改操作String,建议用StringBuffer类;
如果出现次数相同,则把相应的字符都记录到一个新的List里面;
使用泛型,可以大大降低出错的概率,减少类型转换可能带来的问题。

统计一个字符串中出现次数最多的字符

public void countCharacterInString(){      String target = "hello world  what about you today";     ...
  • KJinfei
  • KJinfei
  • 2017年09月20日 13:08
  • 136

JS实现找到某字符串中出现次数最多的字符,并统计次数

需求:判断”what are you”字符串中出现次数最多的字符串,统计这个次数                        var str="what are you";//定义变量str存放给...
  • songlf521
  • songlf521
  • 2016年09月14日 15:42
  • 2865

找出一个字符串中出现次数最多的字符

package com.wh.test;import java.util.*;/** * Created by John on 2017/7/25. */ public class MaxCoun...
  • G0_hw
  • G0_hw
  • 2017年07月25日 22:03
  • 603

Java实现给定任一字符串,长度为任意,要求找出其出现次数最多的字符及其出现次数。

import java.util.ArrayList;/** * 给定任一字符串,长度为任意,要求找出其出现次数最多的字符及其出现次数。 * @author ZHOUMI2 */public c...
  • wuya814070935
  • wuya814070935
  • 2015年10月16日 11:07
  • 1424

C语言—统计字符串出现次数最多的字母

//统计出现次数最多的字母 //不分大小写 #include #include void main() {          chara[100];          intfre[26];     ...
  • u014204323
  • u014204323
  • 2014年06月25日 15:43
  • 2394

php面试题:如何知道一个未知长度的字符串哪个字符出现的次数最多?(字符串可由字母,数字及其他字符组成)请写出代码。

如何知道一个未知长度的字符串哪个字符出现的次数最多?(字符串可由字母,数字及其他字符组成)请写出代码。 $str="asdfgfdas323344##$\$fdsdfg*$**$*$**$$443...
  • hyf93924
  • hyf93924
  • 2015年04月11日 20:31
  • 672

给定一个字符串,找出这个字符串中出现最多的字符和次数

1. “给定一个字符串,找出这个字符串中出现最多的字符和次数”, public class FindChar { public static void main(String args[]){ S...
  • salahelx
  • salahelx
  • 2015年03月19日 17:06
  • 1648

判断一个字符串中出现次数最多的字符,并统计这个次数

判断一个字符串中出现次数最多的字符,并统计这个次数 script> var str='asdaa'; var obj={}; for(var i=0,l=str.length,k;i    ...
  • wenxuan123654
  • wenxuan123654
  • 2016年10月20日 14:59
  • 1734

给定一个字符串找出出现次数最多的字符

public static Map getMaxCountChar(String input){ Map result = new HashMap(); char[] charA...
  • I_forever
  • I_forever
  • 2016年03月26日 16:02
  • 1156

输入字符串,统计字符串中出现频率次数最多的字符,并统计次数,以及每个字符字符出现的次数

import java.util.Iterator; import java.util.Scanner; import java.util.Set; import java.util.TreeM...
  • alert_Java_Song
  • alert_Java_Song
  • 2017年07月17日 21:49
  • 312
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:找出并统计任意字符串中出现最多的字符
举报原因:
原因补充:

(最多只允许输入30个字)