`

java

阅读更多

 


在一个字符串中可能包含a-z中的多个字符,如有重复,如String data = "shfksjgljsfsfs",求出现次数最多的那个字母及次数,如有多个重复的则求出。

思路:
1.引入TreeSet,通过集合快速找到所有出现的字符。
2.引入ArrayList,为了快速排序,再通过StringBuffer生成排序后的字符串。
3.通过String Api中基本方法, indexOf lastIndexOf来计算TreeSet中每个字符串出现的最大值。
4.如果出现相同的则把相同的都记录在一个列表中。
5.记录第一个出现次数最多的字符(为了计算多个字符串相同的情况)。
6.计算最大字符串列表中哪些才是真正出现次数最多的。

Java代码 复制代码
  1.   
  2. import java.util.ArrayList;   
  3. import java.util.Collections;   
  4. import java.util.Iterator;   
  5. import java.util.TreeSet;   
  6.   
  7.   
  8. public class Test2 {   
  9.     public static void main(String args[]){   
  10.         String input = "adsfsafasdfjlfdjgkdf";   
  11.         new Test2().doString(input);   
  12.     }   
  13.   
  14.     public void doString(String input){   
  15.         char[] chars = input.toCharArray();   
  16.         ArrayList lists = new ArrayList();   
  17.         TreeSet set = new TreeSet();   
  18.         for(int i=0;i<chars.length;i++){   
  19.             lists.add(String.valueOf(chars[i]));   
  20.             set.add(String.valueOf(chars[i]));   
  21.         }   
  22.         System.out.println(set); //set没有重复的元素   
  23.         Collections.sort(lists);   
  24.         System.out.println(lists); //sort排序   
  25.   
  26.         StringBuffer sb = new StringBuffer();   
  27.         for(int i=0;i<lists.size();i++){   
  28.             sb.append(lists.get(i));   
  29.         }   
  30.         input = sb.toString();   
  31.         System.out.println(input);   
  32.         int max = 0;   
  33.         String maxString = "";   
  34.         ArrayList maxlist = new ArrayList();   
  35.   
  36.         Iterator its = set.iterator();   
  37.         while(its.hasNext()){   
  38.             String os = (String)its.next();   
  39.             int begin = input.indexOf(os);   
  40.             int end = input.lastIndexOf(os);   
  41.             int value = end - begin + 1;   
  42.             if(value > max){   
  43.                 max = value;   
  44.                 maxString = os;   
  45.                 maxlist.add(os);   
  46.             }   
  47.             else if(value == max){   
  48.                 maxlist.add(os);   
  49.             }   
  50.         }   
  51.   
  52.         int index = 0;   
  53.         for(int i=0;i<maxlist.size();i++){   
  54.             if(maxlist.get(i).equals(maxString)){   
  55.                 index = i;   
  56.                 break;   
  57.             }   
  58.         }   
  59.         System.out.println("出现最多的字符分别是:");   
  60.         for(int i=index;i<maxlist.size();i++){   
  61.             System.out.println(maxlist.get(i) + "  ");   
  62.         }   
  63.         System.out.println();   
  64.         System.out.println("出现最多的次数为" + max);   
  65.     }   
  66. }  
分享到:
评论

相关推荐

    JAVA_API1.6文档(中文)

    java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...

    Java 面经手册·小傅哥.pdf

    这是一本以面试题为入口讲解 Java 核心内容的技术书籍,书中内容极力的向你证实代码是对数学逻辑的具体实现。当你仔细阅读书籍时,会发现Java中有大量的数学知识,包括:扰动函数、负载因子、拉链寻址、开放寻址、...

    Java OCR 图像智能字符识别技术,可识别中文

    Java OCR(Optical Character Recognition,光学字符识别)技术是一种计算机视觉领域的应用,它能将图像中的文字转换成可编辑的文本格式。这项技术在各种场景下都有广泛应用,比如文档扫描、车牌识别、发票处理等。...

    Java API文档 中文网页版

    Java API文档是Java开发者的重要参考资料,它包含了Java开发工具包(JDK)中的所有类、接口、方法和常量的详细说明。这份中文网页版的Java API文档为中国的开发者提供了便利,无需通过英文版本来学习和查找API信息,...

    java_011 java 人脸识别完整源代码

    java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011...

    java电商源代码 java电商源代码

    java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java...

Global site tag (gtag.js) - Google Analytics