最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java利用Map實(shí)現(xiàn)計(jì)算文本中字符個(gè)數(shù)

 更新時(shí)間:2022年08月30日 08:46:05   作者:糊涂涂是個(gè)小盆友  
這篇文章主要為大家詳細(xì)介紹了Java如何利用Map集合實(shí)現(xiàn)計(jì)算文本中字符個(gè)數(shù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

一、題目要求

有一個(gè)英文的文本文檔a.txt , 需要讀取該文本文檔并計(jì)算文檔中英文字符出現(xiàn)的次數(shù),最后打印輸出

注意:map集合只能放入英文字符,不能夠有空格數(shù)字引號(hào)等字符,所以在寫(xiě)代碼的時(shí)候需要額外的進(jìn)行判斷,還需要考慮的一點(diǎn)是英文字符是有大小寫(xiě)的,但是統(tǒng)計(jì)在map里面就不區(qū)分大小寫(xiě)

二、分析

1、需要先獲取文檔的路徑,并創(chuàng)建HashMap作為存放次數(shù)的容器,key的類型為Character存放字符,value的類型為Integer存放次數(shù)

2、通過(guò)文檔輸入流讀取文檔中的內(nèi)容,得到一串字符串

3、遍歷字符串,獲得字符串中每一個(gè)字符

4、判斷字符在map集合中是否存在

5、不存在則將其放入

6、存在則將map集合中字符key對(duì)應(yīng)的次數(shù)value取出,然后加一,再通過(guò)put方法重新放回,起到更新次數(shù)的效果

三、部分代碼展示

1、創(chuàng)建Map列表及文件路徑

FileInputStream fis = null;
HashMap<Character, Integer> map = new HashMap<>();

2、獲得文本中的內(nèi)容并返回為字符串

while ((len = fis.read(b))!=-1){
// 獲得文件中的字符串
      s = new String(b, 0, len);
}

3、遍歷字符串并獲得每個(gè)字符再進(jìn)行相關(guān)判斷后放入map集合中

// 遍歷字符串得到每一個(gè)字符
 for (int i = 0; i < s.length() ; i++) {
     char c = s.charAt(i);
     // 判斷是否是字母
     if ( ((c>='a')&&(c<='z')) || ((c>='A')&&(c<='Z'))){
     // 將字母轉(zhuǎn)換為小寫(xiě)
     char nc = Character.toLowerCase(c);
    // 判斷map集合中是否有該鍵
     if (map.containsKey(nc)){
     Integer num = map.get(nc);
     num++;
     map.put(nc,num);
  }else {
     map.put(nc,1);
    }
  }

  }

4、遍歷map集合得到數(shù)據(jù)

// 遍歷map集合得到數(shù)據(jù)
Set<Character> key = map.keySet();
  for (Character c : key) {
  Integer value = map.get(c);
  System.out.println("key="+c+"----"+"value="+value);
}

四、全部代碼

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class totalNum {
    public static void main(String[] args) throws IOException {
        // todo 統(tǒng)計(jì)字母出現(xiàn)的次數(shù)
        FileInputStream fis = null;
        String s = null;
        HashMap<Character, Integer> map = new HashMap<>();
        try {
            fis = new FileInputStream("E:\\JavaCode\\JavaSE\\Day8-25\\src\\a1\\a.txt");
            byte[] b = new byte[1024];
            int len = 0;

            while ((len = fis.read(b))!=-1){
                // 獲得文件中的字符串
                 s = new String(b, 0, len);
            }

            // 遍歷字符串得到每一個(gè)字符
            for (int i = 0; i < s.length() ; i++) {
                char c = s.charAt(i);
                // 判斷是否是字母
                if ( ((c>='a')&&(c<='z')) || ((c>='A')&&(c<='Z'))){
                    // 將字母轉(zhuǎn)換為小寫(xiě)
                    char nc = Character.toLowerCase(c);
                    // 判斷map集合中是否有該鍵
                    if (map.containsKey(nc)){
                        Integer num = map.get(nc);
                        num++;
                        map.put(nc,num);
                    }else {
                        map.put(nc,1);
                    }
                }

            }

            // 遍歷map集合得到數(shù)據(jù)
            Set<Character> key = map.keySet();
            for (Character c : key) {
                Integer value = map.get(c);
                System.out.println("key="+c+"----"+"value="+value);
            }



        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            fis.close();
        }
    }
}

五、結(jié)果截圖(部分)

六、a.txt文本

I am happy to join with you. today in what will go down in history ,as the greatest demonstration for freedom in the history of our nation…
Five score years ago, a great American, in whose symbolic shadow we stand today, signed the Emancipation Proclamation. This momentous decree came as a great beacon light of hope to millions of Negro slaves who had been seared in the flames of withering injustice. It came as a joyous daybreak to end the long night of bad captivity.

到此這篇關(guān)于Java利用Map實(shí)現(xiàn)計(jì)算文本中字符個(gè)數(shù)的文章就介紹到這了,更多相關(guān)Java計(jì)算文本字符個(gè)數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java遠(yuǎn)程共享目錄的操作代碼

    Java遠(yuǎn)程共享目錄的操作代碼

    這篇文章主要介紹了java操作遠(yuǎn)程共享目錄的實(shí)現(xiàn)代碼,非常不粗,具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-08-08
  • SpringBoot和前端聯(lián)動(dòng)實(shí)現(xiàn)存儲(chǔ)瀏覽記錄功能

    SpringBoot和前端聯(lián)動(dòng)實(shí)現(xiàn)存儲(chǔ)瀏覽記錄功能

    這篇文章主要介紹了SpringBoot和前端聯(lián)動(dòng)實(shí)現(xiàn)存儲(chǔ)瀏覽記錄功能,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • java基礎(chǔ)學(xué)習(xí)筆記之反射

    java基礎(chǔ)學(xué)習(xí)筆記之反射

    什么是反射?Java 程序在運(yùn)行期間可以動(dòng)態(tài)加載、解析和使用一些在編譯階段并不確定的類型數(shù)據(jù),這一機(jī)制被稱為反射(Reflection)。今天我們就來(lái)詳細(xì)探討下java中的反射
    2016-02-02
  • java 中JFinal getModel方法和數(shù)據(jù)庫(kù)使用出現(xiàn)問(wèn)題解決辦法

    java 中JFinal getModel方法和數(shù)據(jù)庫(kù)使用出現(xiàn)問(wèn)題解決辦法

    這篇文章主要介紹了java 中JFinal getModel方法和數(shù)據(jù)庫(kù)使用出現(xiàn)問(wèn)題解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • SpringBoot之瘦身部署問(wèn)題

    SpringBoot之瘦身部署問(wèn)題

    這篇文章主要介紹了SpringBoot之瘦身部署問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java獲取泛型實(shí)際類型的方法詳解

    Java獲取泛型實(shí)際類型的方法詳解

    這篇文章主要介紹了Java獲取泛型實(shí)際類型的方法詳解,泛型,即“參數(shù)化類型”,一提到參數(shù),最熟悉的就是定義方法時(shí)有形參列表,普通方法的形參列表中,每個(gè)形參的數(shù)據(jù)類型是確定的,而變量是一個(gè)參數(shù),需要的朋友可以參考下
    2023-11-11
  • 一篇文章帶你深入了解Java基礎(chǔ)(5)

    一篇文章帶你深入了解Java基礎(chǔ)(5)

    這篇文章主要給大家介紹了關(guān)于Java中方法使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • SpringBoot配置文件bootstrap和application區(qū)別及說(shuō)明

    SpringBoot配置文件bootstrap和application區(qū)別及說(shuō)明

    這篇文章主要介紹了SpringBoot配置文件bootstrap和application區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Java?SpringBoot?中的操作事務(wù)

    Java?SpringBoot?中的操作事務(wù)

    這篇文章主要介紹了Java?SpringBoot?中的操作事務(wù),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • 通過(guò)java反射機(jī)制動(dòng)態(tài)調(diào)用某方法的總結(jié)(推薦)

    通過(guò)java反射機(jī)制動(dòng)態(tài)調(diào)用某方法的總結(jié)(推薦)

    下面小編就為大家?guī)?lái)一篇通過(guò)java反射機(jī)制動(dòng)態(tài)調(diào)用某方法的總結(jié)(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07

最新評(píng)論

巴南区| 苗栗市| 龙州县| 静宁县| 丹江口市| 清涧县| 陆丰市| 焦作市| 苏尼特左旗| 长汀县| 武冈市| 中超| 高唐县| 安义县| 米泉市| 上思县| 龙海市| 宁乡县| 漳州市| 宁强县| 沈阳市| 五河县| 白山市| 道孚县| 昌邑市| 那坡县| 祁门县| 剑阁县| 依兰县| 措美县| 怀远县| 佛山市| 延寿县| 齐齐哈尔市| 阳山县| 芦山县| 凉城县| 辽宁省| 马边| 安塞县| 新乐市|