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

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

如何從計(jì)數(shù)中排除空格?

如何從計(jì)數(shù)中排除空格?

慕的地6264312 2022-09-14 17:43:48
我必須計(jì)算文件“測試.txt”中有多少字母(字符)。我把它記下來了,但它也包括了空間,我不想包括。關(guān)于如何做到這一點(diǎn)有什么建議嗎?非常感謝。import java.io.*;class EnglishAnalysis{    public static void main(String[] args)    {        try        {            FileReader fr = new FileReader("test.txt");            BufferedReader br = new BufferedReader(fr);            int count = 0;            String lineCharacters [];            String line;            line = br.readLine();            while (line != null)            {                 lineCharacters = line.split("");                 for (int i = 0; i < lineCharacters.length; i++)                 {                     count ++;                     line = br.readLine();                 }                 System.out.println(count);             }             br.close();        }        catch (IOException e) {}    }}
查看完整描述

5 回答

?
蝴蝶不菲

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

或者(Java 8 +),你可以用 和 方法非常輕松地做到這一點(diǎn):lines()chars()


BufferedReader br = new BufferedReader(fr);

long count = br.lines().flatMapToInt(e -> e.codePoints()).filter(e -> !Character.isWhiteSpace(e)).count();

這將占用文件的行,將它們平面映射到字符,過濾掉任何空格,然后計(jì)算元素Stream<String>String::codePoints


查看完整回答
反對 回復(fù) 2022-09-14
?
拉莫斯之舞

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

為什么不在從所有空格中清除每行后添加每行的字符數(shù):


    while (line != null) {

        count += line.replaceAll("\\s+", "").length();

        line = br.readLine();

    }


查看完整回答
反對 回復(fù) 2022-09-14
?
小怪獸愛吃肉

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

也許我錯(cuò)過了一些東西,但我不明白分裂有什么好處。我會這樣做:


public static void main(String[] args) {

    try {

        FileReader fr = new FileReader("/tmp/test.txt");

        BufferedReader br = new BufferedReader(fr);

        int count = 0;

        String line;

        line = br.readLine();

        while (line != null) {

            for (int i = 0; i < line.length(); i++)

                if (!Character.isWhitespace(line.charAt(i)))

                    count++;

            line = br.readLine();

        }

        br.close();

        System.out.println(count);

    } catch (IOException ex) {

        System.out.println(ex);

    }

}

具體來說,我認(rèn)為根本不需要修改輸入,通過調(diào)用split,制作額外的副本,執(zhí)行查找/替換等。這一切都需要額外的時(shí)間和空間。


實(shí)際上,我看不出有任何理由打擾按行處理文件:


public static void main(String[] args) {

    try {

        FileReader fr = new FileReader("/tmp/test.txt");

        BufferedReader br = new BufferedReader(fr);

        int count = 0;

        while (true) {

            int c = br.read();

            if (c < 0)

                break;

            if (!Character.isWhitespace(c))

                count++;

        }

        br.close();

        System.out.println(count);

    } catch (IOException ex) {

        System.out.println(ex);

    }

}

使用緩沖讀取器本身可以讓您有效地不逐個(gè)字符讀取文件。因此,通過這種方式可以保存每行的額外副本。


查看完整回答
反對 回復(fù) 2022-09-14
?
搖曳的薔薇

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

字符類具有“是白色空間()”方法


java.lang.Character.isWhitespace(字符 ch)


while (line != null)

  {

    for (int i = 0; i < line.length(); i++)

    {

      if (!Character.isWhitespace(line.charAt(i)))

         count ++;

      line = br.readLine();

    }

    System.out.println(count);

  }


查看完整回答
反對 回復(fù) 2022-09-14
?
陪伴而非守候

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

為什么不在執(zhí)行拆分和計(jì)數(shù)之前從字符串中刪除空格?


一種方法是使用正則表達(dá)式:


while (line != null)

{

  line.replaceAll("\\s+","");

  lineCharacters = line.split("");

  ...

}


查看完整回答
反對 回復(fù) 2022-09-14
  • 5 回答
  • 0 關(guān)注
  • 158 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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