成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

一小段java代碼——去掉文本中的多余空格和空行

williamwen1986 / 2712人閱讀

摘要:前言最近在開發(fā)一個(gè)小型的圈子系統(tǒng)。功能類似一個(gè)簡(jiǎn)化的微博。產(chǎn)品大哥要求我立即開發(fā)一套過濾邏輯,刪除多余的空格和帖子。和都需要處理實(shí)現(xiàn)移除多余空行和空格移除行中的多余空格呵呵測(cè)試將風(fēng)控打掃房間快遞費(fèi)解封時(shí)代峰峻發(fā)的幾點(diǎn)睡

前言

最近在開發(fā)一個(gè)小型的圈子系統(tǒng)。功能類似一個(gè)簡(jiǎn)化的微博。用戶可以在圈子里發(fā)帖子,回復(fù)帖子,點(diǎn)贊等等。項(xiàng)目上線不久就發(fā)現(xiàn)有很多用戶在圈子里發(fā)廣告,手段之豐富令人嘆為觀止啊。產(chǎn)品大哥昨天突然跑過來跟我說:現(xiàn)在圈子里有很多廣告,而且發(fā)廣告的人為了吸引別人的注意力經(jīng)常會(huì)發(fā)出很多帶有很多空行和空格的帖子跟回復(fù)。這樣一個(gè)帖子就會(huì)沾滿屏幕,十分影響使用。產(chǎn)品大哥要求我立即開發(fā)一套過濾邏輯,刪除多余的空格和帖子。

需求

按照如下要求處理字符串

字符串中連續(xù)的空格數(shù)不能大于5,大于5時(shí)只保留5個(gè)

字符串中含有的連續(xù)空行數(shù)不能大于2,大于2時(shí)只保留2個(gè)

分析

記得之前的老大說過,字符串處理如果能不用正則表達(dá)式就不用,那個(gè)性能不好

分析一下實(shí)際應(yīng)用場(chǎng)景,全是空格的一行也應(yīng)該被算作空行。否則哪天發(fā)廣告的人發(fā)現(xiàn)了這個(gè)漏洞就會(huì)利用起來。

和 都需要處理

實(shí)現(xiàn)
    /**
    * 移除多余空行和空格
    */
    public static String dealRedundantSpaceAndBlankLine(String content)
    {
        if (content == null || content.length() == 0)
        {
            return "";
        }
        StringBuilder strAfterRemoveCRSB = new StringBuilder();
        for (int i = 0; i < content.length(); i++)
        {
            if (content.charAt(i) != "
")
                strAfterRemoveCRSB.append(content.charAt(i));
        }
        String strAfterRemoveCR = strAfterRemoveCRSB.toString();
        if (strAfterRemoveCR == null || strAfterRemoveCR.length() == 0)
        {
            return "";
        }
        StringBuilder resultSB = new StringBuilder();
        String[] lines = strAfterRemoveCR.split("
");
        int blankCount = 0;
        for (String line : lines)
        {
            if (line == null)
            {
                continue;
            }
            String lineTrim = line.trim();
            if ("".equals(lineTrim))
            {
                blankCount++;
                if (blankCount <= 2) {
                    resultSB.append("
");
                }
            } else {
                blankCount = 0;
                resultSB.append(dealSpace4OneLine(line)).append("
");
            }
        }
        resultSB.deleteCharAt(resultSB.length() - 1);
        return resultSB.toString();
    }

    /**
    * 移除1行中的多余空格
    */
    public static String dealSpace4OneLine(String line)
    {
        if (line == null || "".equals(line)) {
            return "";
        }
        int spaceCount = 0;
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < line.length(); i++) {
            char curChar = line.charAt(i);
            if (curChar == " ")
            {
                spaceCount++;
                if (spaceCount <= 5) {
                    sb.append(" ");
                }
            } else {
                spaceCount = 0;
                sb.append(curChar);
            }
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        String str = "呵呵       測(cè)試



         
   
將風(fēng)控打掃房       間



   
    
     快遞費(fèi)解封時(shí)代峰峻

    發(fā)的幾點(diǎn)睡   ";
        String result = dealRedundantSpaceAndBlankLine(str);
        System.out.println(result);
    }

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/67547.html

相關(guān)文章

  • CSS3 文本換行

    摘要:文本換行其實(shí)是個(gè)非常常用但并不起眼的特性。在中日韓文情況下,和有區(qū)別,見下圖中日韓文情況下,仍舊等于沒有設(shè),瀏覽器選擇在文字或標(biāo)點(diǎn)符號(hào)處換行。但設(shè)成后,將不再允許斷詞哪怕是中日韓文,只能像英語系一樣根據(jù)半角空格或標(biāo)點(diǎn)來?yè)Q行。 文本換行其實(shí)是個(gè)非常常用但并不起眼的特性。你什么都不用設(shè),瀏覽器自動(dòng)就會(huì)換行。例如英語,瀏覽器會(huì)根據(jù)容器尺寸,選擇在半角空格或連字符處換行。例如中文,瀏覽器會(huì)選擇...

    EasonTyler 評(píng)論0 收藏0
  • CSS3 文本換行

    摘要:文本換行其實(shí)是個(gè)非常常用但并不起眼的特性。在中日韓文情況下,和有區(qū)別,見下圖中日韓文情況下,仍舊等于沒有設(shè),瀏覽器選擇在文字或標(biāo)點(diǎn)符號(hào)處換行。但設(shè)成后,將不再允許斷詞哪怕是中日韓文,只能像英語系一樣根據(jù)半角空格或標(biāo)點(diǎn)來?yè)Q行。 文本換行其實(shí)是個(gè)非常常用但并不起眼的特性。你什么都不用設(shè),瀏覽器自動(dòng)就會(huì)換行。例如英語,瀏覽器會(huì)根據(jù)容器尺寸,選擇在半角空格或連字符處換行。例如中文,瀏覽器會(huì)選擇...

    chinafgj 評(píng)論0 收藏0
  • php閉合標(biāo)簽輸出多余空行使xml頁(yè)面顯示錯(cuò)誤的處理

    摘要:但我最近遇到了腳本結(jié)束標(biāo)記照成頁(yè)面無法顯示的問題。但是,如果使用閉合標(biāo)簽,任何由開發(fā)者,用戶,或者應(yīng)用程序插入閉合標(biāo)簽后面的空格都有可能會(huì)引起多余的輸出錯(cuò)誤之后的輸出無法顯示空白頁(yè)。 在PHP官方文檔中,曾經(jīng)指出最好不要再結(jié)尾添加?>結(jié)束標(biāo)記。但我們編程的習(xí)慣和使用的IDE都會(huì)為我們自動(dòng)建立php結(jié)束標(biāo)記?>。這個(gè)標(biāo)記使用在正常情況下是不影響程序的運(yùn)行的。尤其在早期的php4中,這種標(biāo)...

    linkFly 評(píng)論0 收藏0
  • php閉合標(biāo)簽輸出多余空行使xml頁(yè)面顯示錯(cuò)誤的處理

    摘要:但我最近遇到了腳本結(jié)束標(biāo)記照成頁(yè)面無法顯示的問題。但是,如果使用閉合標(biāo)簽,任何由開發(fā)者,用戶,或者應(yīng)用程序插入閉合標(biāo)簽后面的空格都有可能會(huì)引起多余的輸出錯(cuò)誤之后的輸出無法顯示空白頁(yè)。 在PHP官方文檔中,曾經(jīng)指出最好不要再結(jié)尾添加?>結(jié)束標(biāo)記。但我們編程的習(xí)慣和使用的IDE都會(huì)為我們自動(dòng)建立php結(jié)束標(biāo)記?>。這個(gè)標(biāo)記使用在正常情況下是不影響程序的運(yùn)行的。尤其在早期的php4中,這種標(biāo)...

    tianlai 評(píng)論0 收藏0
  • Google 推出的 Java 編碼規(guī)范

    摘要:格式術(shù)語說明塊狀結(jié)構(gòu)指的是一個(gè)類,方法或構(gòu)造函數(shù)的主體。方法名或構(gòu)造函數(shù)名與左括號(hào)留在同一行。空白垂直空白以下情況需要使用一個(gè)空行類內(nèi)連續(xù)的成員之間字段,構(gòu)造函數(shù),方法,嵌套類,靜態(tài)初始化塊,實(shí)例初始化塊。 前言 這份文檔是Google Java編程風(fēng)格規(guī)范的完整定義。當(dāng)且僅當(dāng)一個(gè)Java源文件符合此文檔中的規(guī)則, 我們才認(rèn)為它符合Google的Java編程風(fēng)格。 與其它的編程風(fēng)格...

    Donne 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<