真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

利用Java實(shí)現(xiàn)求字符串中出現(xiàn)次數(shù)最多的字符及次數(shù)

這篇文章將為大家詳細(xì)講解有關(guān)利用Java實(shí)現(xiàn)求字符串中出現(xiàn)次數(shù)最多的字符及次數(shù),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、善左網(wǎng)絡(luò)推廣、小程序制作、善左網(wǎng)絡(luò)營銷、善左企業(yè)策劃、善左品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供善左建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com

此題的解題思路如下:

引入TreeSet:通過集合快速找到所有出現(xiàn)過的字符串
引入ArrayList:為了快速排序,再通過StringBuffer生成排序后的字符串
通過String的indexOf方法和lastIndexOf方法來計(jì)算每個(gè)字符串出現(xiàn)的次數(shù)最大值
使用HashMap存儲(chǔ)出現(xiàn)多的字符串和次數(shù)

代碼如下:

import java.util.ArrayList; 
import java.util.Collections; 
import java.util.HashMap; 
import java.util.Iterator; 
import java.util.Map; 
import java.util.TreeSet; 
 
public class SortTest { 
  public static void main(String[] args) { 
    String input = "httpblogcsdnnetouyangpeng"; 
    new SortTest().doString(input); 
  } 
 
  public void doString(String input) { 
    /** 
     * 第一步: 
     *   使用TreeSet快速找到所有出現(xiàn)的字符串 
     *   將輸入的字符串按升序排列 
     */ 
    //將String轉(zhuǎn)換為字符數(shù)組 
    char[] chars=input.toCharArray(); 
    ArrayList lists=new ArrayList(); 
    //TreeSet是一個(gè)有序集合,TreeSet中的元素將按照升序排列 
    //通過TreeSet的不重復(fù)性,快速找到所有出現(xiàn)的字符串 
    TreeSet set=new TreeSet(); 
    for (int i = 0; i < chars.length; i++) { 
      lists.add(String.valueOf(chars[i])); 
      set.add(String.valueOf(chars[i])); 
    } 
    //set= [a, b, c, d, e, g, h, l, n, o, p, s, t, u, y] 
    System.out.println("set= "+set);   
    //排序 
    Collections.sort(lists); 
    //lists= [a, b, c, d, e, e, g, g, g, h, l, n, n, n, n, o, o, p, p, s, t, t, t, u, y] 
    System.out.println("lists= "+lists);   
    //將排序好的字符數(shù)組轉(zhuǎn)換為StringBuffer 
    StringBuffer sb=new StringBuffer(); 
    for (int i = 0; i < lists.size(); i++) { 
      sb.append(lists.get(i)); 
    } 
    input=sb.toString();  
    //input= abcdeeggghlnnnnooppstttuy 
    System.out.println("input= "+input);   
     
    /** 
     * 第二步: 找出出現(xiàn)相同的字符并記錄出現(xiàn)多少次 
     */ 
    //最多重復(fù)出現(xiàn)多少次 
    int max=0; 
    //重復(fù)出現(xiàn)的字符 
    String maxString=""; 
    /*//重復(fù)出現(xiàn)的字符列表 
    ArrayList maxList=new ArrayList();*/ 
    //用來保存出現(xiàn)最多的字符串和次數(shù) 
    HashMap hm=new HashMap(); 
    //將出現(xiàn)過的字符遍歷 
    Iterator its=set.iterator(); 
    while (its.hasNext()) { 
      String os=its.next(); 
      //字符出現(xiàn)在排序后input中的第一次位置 
      int begin=input.indexOf(os); 
      //字符出現(xiàn)在排序后input中的最后一次位置 
      int end=input.lastIndexOf(os); 
      //字符出現(xiàn)的次數(shù) 
      int value=end-begin+1; 
      if (value>=max) { 
        max=value; 
        maxString=os; 
        hm.put(maxString, max); 
      } 
    } 
     
    for (Map.Entry enties: hm.entrySet()) { 
      if (enties.getValue()==max) { 
        System.out.print("重復(fù)最多的字母是:"+enties.getKey()); 
        System.out.println("重復(fù)最多的次數(shù)是:"+enties.getValue()); 
      } 
    } 
  } 
} 

運(yùn)行結(jié)果如下:

set= [a, b, c, d, e, g, h, l, n, o, p, s, t, u, y] 
lists= [a, b, c, d, e, e, g, g, g, h, l, n, n, n, n, o, o, p, p, s, t, t, t, u, y] 
input= abcdeeggghlnnnnooppstttuy 

重復(fù)最多的字母是:n重復(fù)最多的次數(shù)是:4 

當(dāng)有字符串重復(fù)的次數(shù)相同時(shí),也可以將它們都打印出來。

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

運(yùn)行結(jié)果如下:

set= [a, b, c, d, e, f] 
lists= [a, a, a, a, a, a, b, b, b, b, b, c, c, c, d, d, d, d, e, e, e, e, e, f, f, f, f, f, f] 
input= aaaaaabbbbbcccddddeeeeeffffff 
重復(fù)最多的字母是:f重復(fù)最多的次數(shù)是:6 
重復(fù)最多的字母是:a重復(fù)最多的次數(shù)是:6 

關(guān)于利用Java實(shí)現(xiàn)求字符串中出現(xiàn)次數(shù)最多的字符及次數(shù)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


文章題目:利用Java實(shí)現(xiàn)求字符串中出現(xiàn)次數(shù)最多的字符及次數(shù)
標(biāo)題鏈接:http://weahome.cn/article/ihphpj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部