第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 StreamTokenizer () 、 HashMap() 、 HashSet() 計(jì)算詞頻

使用 StreamTokenizer () 、 HashMap() 、 HashSet() 計(jì)算詞頻

猛跑小豬 2022-08-03 12:41:41
import java.io.*;import java.util.*;class A {    public static void main(String args[]) throws Exception {        Console con = System.console();        String str;        int i=0;          HashMap map = new HashMap();        HashSet set = new HashSet();         System.out.println("Enter File Name : ");        str = con.readLine();        File f = new File(str);        f.createNewFile();                FileInputStream fis = new FileInputStream(str);        StreamTokenizer st = new StreamTokenizer(fis);        while(st.nextToken()!=StreamTokenizer.TT_EOF) {         String s;             switch(st.ttype) {             case StreamTokenizer.TT_NUMBER:  s = st.nval+"";             break;              case StreamTokenizer.TT_WORD:    s = st.sval;               break;                default: s = ""+((char)st.ttype);            }            map.put(i+"",s);            set.add(s);            i++;        }         Iterator iter = set.iterator();        System.out.println("Frequency Of Words :");        while(iter.hasNext()) {          String word;          int count=0;          word=(String)iter.next();                      for(int j=0; j<i ; j++) {             String word2;              word2=(String)map.get(j+"");               if(word.equals(word2))                count++;            }            System.out.println(" WORD : "+ word+" = "+count);        }        System.out.println("Total Words In Files: "+i);    }}在此代碼中,首先我已經(jīng)創(chuàng)建了一個(gè)包含以下數(shù)據(jù)的文本文件:@ Hello Hii World # * c++ java salesforce此代碼的輸出是:**單詞頻率 :字?jǐn)?shù) : # = 1字?jǐn)?shù) : @ = 1字 : c = 1WORD : salesforce = 1字?jǐn)?shù) : * = 1字?jǐn)?shù) : Hii = 1字?jǐn)?shù) : + = 2單詞 : java = 1單詞 : 世界 = 1單詞 : 你好 = 1文件中的總字?jǐn)?shù):11**在那里,我無(wú)法找到為什么這將c ++顯示為一個(gè)單獨(dú)的單詞。我想將c ++組合成一個(gè)單詞,就像在輸出中一樣
查看完整描述

1 回答

?
慕森王

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊

你可以用這種方式來(lái)做


    // Create the file at path specified in the String str

    // ...

    HashMap<String, Integer> map = new HashMap<>();

    InputStream fis = new FileInputStream(str);

    Reader bufferedReader = new BufferedReader(new InputStreamReader(fis));


    StreamTokenizer st = new StreamTokenizer(bufferedReader);

    st.wordChars('+', '+');

    while(st.nextToken() != StreamTokenizer.TT_EOF) {

        String s;


        switch(st.ttype) {

            case StreamTokenizer.TT_NUMBER:

                s = String.valueOf(st.nval);

                break;

            case StreamTokenizer.TT_WORD:

                s = st.sval;

                break;

            default:

                s = String.valueOf((char)st.ttype);

        }

        Integer val = map.get(s);

        if(val == null)

            val = 1;

        else

            val++;

        map.put(s, val);

    }


    Set<String> keySet = map.keySet();

    Iterator<String> iter = keySet.iterator();

    System.out.println("Frequency Of Words :");

    int sum = 0;

    while(iter.hasNext()) {

        String word = iter.next();

        int count = map.get(word);

        sum += count;

        System.out.println(" WORD : " + word + " = " + count);

    }

    System.out.println("Total Words In Files: " + sum);

請(qǐng)注意,我已使用泛型而不是哈希映射和迭代器的原始版本更新了您的代碼。此外,您用于 StreamTokenizer 的構(gòu)造函數(shù)已被棄用。映射和 set 的使用是無(wú)用的,因?yàn)槟梢允褂?.keySet() 方法循環(huán)訪問(wèn)映射的鍵集?,F(xiàn)在,映射將從字符串(單詞)變?yōu)檎麛?shù)(字?jǐn)?shù))。


無(wú)論如何,關(guān)于你所做的示例,我認(rèn)為簡(jiǎn)單的拆分方法會(huì)更合適。


查看完整回答
反對(duì) 回復(fù) 2022-08-03
  • 1 回答
  • 0 關(guān)注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)