1. 程式人生 > >java學習中的一些小演算法抽取之位元組數量統計演算法

java學習中的一些小演算法抽取之位元組數量統計演算法

位元組數量統計演算法

今天在整理一些演算法的程式碼,看到了許多以前學習java時抽取的一些小演算法,在平時也經常用得到,很方便,今天要分享的是位元組數量統計演算法,後面將簡述思路和貼出程式碼。

演算法思想:

首先我們一般得到的是字串str,這時我們可以呼叫java中的toCharArray()方法獲得字串陣列(char[] ch=str.toCharArray());
建立一個map集合,接著遍歷這個陣列,每次判斷map集合中是否存在這個位元組也就是key值(map.containsKey©),若已經存在,則對value進行增1操作,若沒有,則以該位元組為key 存入map 即:map.put(c,1).
思路很簡單,利用了java中map集合的特點,程式碼貼在下面,有需要的可以根據自己的需求進行更改。

package cn.wxxy.algorithm01;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

//位元組數量統計演算法
public class ByteStatisticsAlgorithm {
    public static void main(String[] args) {

        Scanner input=new Scanner(System.in);
        System.out.println("請輸入字串:");
        String str=input.next();
        ByteStatistics(str);

    }
    private static void ByteStatistics(String str) {
        char[] ch=str.toCharArray();
        Map<Character,Integer> map=new HashMap<>();
        for (char c : ch) {
            if(map.containsKey(c)){//判斷map中是否存在Key值c
                map.put(c,map.get(c)+1);//如果c在Map中存在 則c所對應的Value加一
            }
            else {
                map.put(c,1);//Map中不存在c則存入map.put(c,1);
            }
        }
        System.out.println(map);
    }

}

後續會有更多的小演算法或者java基礎知識更新。