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

Java實(shí)現(xiàn)將一段文字按照句號(hào)和感嘆號(hào)進(jìn)行分割的示例代碼

 更新時(shí)間:2026年01月05日 08:54:30   作者:liangblog  
這篇文章介紹了一個(gè)用Java實(shí)現(xiàn)的代碼示例,該代碼能夠?qū)⒁欢挝淖职凑站涮?hào)和感嘆號(hào)進(jìn)行分割,并在分割后去除每段的前后空格,使用了正向后行斷言和StringBuilder來(lái)提高效率,需要的朋友可以參考下

下面是一個(gè)完整的 Java 示例代碼,實(shí)現(xiàn)該功能:

Java 代碼實(shí)現(xiàn)

public class TextToParagraph {

    public static void main(String[] args) {
        // 示例文本
        String text = "這是一個(gè)句子。這是第二個(gè)句子!這是第三個(gè)句子。最后一個(gè)感嘆句!";

        // 處理文本并添加 p 標(biāo)簽
        String result = addParagraphTags(text);

        // 輸出結(jié)果
        System.out.println(result);
    }

    /**
     * 將文本按句號(hào)和感嘆號(hào)分割,每段添加 <p> 標(biāo)簽
     * @param text 輸入文本
     * @return 添加 p 標(biāo)簽后的 HTML 段落字符串
     */
    public static String addParagraphTags(String text) {
        if (text == null || text.trim().isEmpty()) {
            return "";
        }

        // 使用正則表達(dá)式按“?!焙汀?!”分割,同時(shí)保留分隔符
        // 零寬度斷言:在句號(hào)或感嘆號(hào)后拆分,但保留它們
        String[] parts = text.split("(?<=[。!])");

        StringBuilder result = new StringBuilder();

        for (String part : parts) {
            part = part.trim(); // 去除首尾空格
            if (!part.isEmpty()) {
                // 去掉末尾可能多余的標(biāo)點(diǎn)(如果已經(jīng)包含)
                result.append("<p>").append(part).append("</p>\n");
            }
        }

        return result.toString().trim();
    }
}

輸出結(jié)果

對(duì)于輸入:

這是一個(gè)句子。這是第二個(gè)句子!這是第三個(gè)句子。最后一個(gè)感嘆句!

輸出為:

<p>這是一個(gè)句子。</p>
<p>這是第二個(gè)句子!</p>
<p>這是第三個(gè)句子。</p>
<p>最后一個(gè)感嘆句!</p>

技術(shù)說(shuō)明

  • (?<=[。!]):這是一個(gè) 正向后行斷言(positive lookbehind),表示在“。”或“!”之后拆分,但保留該符號(hào)在原字符串中。
  • trim():去除每段前后空格。
  • 使用 StringBuilder 提高字符串拼接效率。

擴(kuò)展建議(可選增強(qiáng))

支持問(wèn)號(hào)(?)也作為分隔符

String[] parts = text.split("(?<=[。?。縘)");

去除空段落或過(guò)濾空白
已通過(guò) isEmpty() 判斷處理。

輸出為 HTML 文件

try (FileWriter fw = new FileWriter("output.html")) {
    fw.write("<html><body>\n" + result + "\n</body></html>");
} catch (IOException e) {
    e.printStackTrace();
}

到此這篇關(guān)于Java實(shí)現(xiàn)將一段文字按照句號(hào)和感嘆號(hào)進(jìn)行分割的示例代碼的文章就介紹到這了,更多相關(guān)Java文字按照句號(hào)和感嘆號(hào)分割內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java數(shù)據(jù)結(jié)構(gòu)之堆(優(yōu)先隊(duì)列)的實(shí)現(xiàn)

    Java數(shù)據(jù)結(jié)構(gòu)之堆(優(yōu)先隊(duì)列)的實(shí)現(xiàn)

    堆(優(yōu)先隊(duì)列)是一種典型的數(shù)據(jù)結(jié)構(gòu),其形狀是一棵完全二叉樹(shù),一般用于求解topk問(wèn)題。本文將利用Java語(yǔ)言實(shí)現(xiàn)堆,感興趣的可以學(xué)習(xí)一下
    2022-05-05
  • java LinkedList的實(shí)例詳解

    java LinkedList的實(shí)例詳解

    這篇文章主要介紹了java LinkedList的實(shí)例詳解的相關(guān)資料,通過(guò)本文希望大家能徹底了解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-09-09
  • Spring Boot 自動(dòng)配置原理的使用小結(jié)

    Spring Boot 自動(dòng)配置原理的使用小結(jié)

    先按 Spring Boot 3.x 的主流實(shí)現(xiàn)來(lái)講,并對(duì)比一下早期版本的差異。 Spring Boot 自動(dòng)配置的核心,可以概括成一句話: Spring Boot 會(huì)在啟動(dòng)時(shí),根據(jù)類路徑里的依賴、當(dāng)
    2026-03-03
  • java跳出for循環(huán)的三種常見(jiàn)方法

    java跳出for循環(huán)的三種常見(jiàn)方法

    這篇文章主要給大家介紹了關(guān)于java跳出for循環(huán)的三種常見(jiàn)方法,需要的朋友可以參考下
    2023-07-07
  • 詳解MyBatis中Executor執(zhí)行SQL語(yǔ)句的過(guò)程

    詳解MyBatis中Executor執(zhí)行SQL語(yǔ)句的過(guò)程

    MyBatis中獲取SqlSession時(shí)會(huì)創(chuàng)建執(zhí)行器Executor并存放在SqlSession中,本篇文章將以MapperMethod的execute() 方法作為起點(diǎn),對(duì)MyBatis中的一次實(shí)際執(zhí)行請(qǐng)求進(jìn)行說(shuō)明,并結(jié)合源碼對(duì)執(zhí)行器Executor的原理進(jìn)行闡釋
    2023-07-07
  • Java虛擬機(jī)JVM優(yōu)化實(shí)戰(zhàn)的過(guò)程全記錄

    Java虛擬機(jī)JVM優(yōu)化實(shí)戰(zhàn)的過(guò)程全記錄

    有人說(shuō)Java之所以能夠崛起,JVM功不可沒(méi)。Java虛擬機(jī)最初服務(wù)于讓Java語(yǔ)言凌駕于平臺(tái)之上,實(shí)現(xiàn)“編寫(xiě)一次,到處運(yùn)行”,那么下面這篇文章主要給大家分享了個(gè)關(guān)于Java虛擬機(jī)JVM優(yōu)化實(shí)戰(zhàn)的過(guò)程全記錄,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-08-08
  • Spring MVC中使用Google kaptcha驗(yàn)證碼的方法詳解

    Spring MVC中使用Google kaptcha驗(yàn)證碼的方法詳解

    kaptcha 是一個(gè)非常實(shí)用的驗(yàn)證碼生成工具。有了它,你可以生成各種樣式的驗(yàn)證碼,因?yàn)樗强膳渲玫?,下面這篇文章主要給大家介紹了關(guān)于Spring MVC中使用Google kaptcha驗(yàn)證碼的方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-10-10
  • JAVA線程同步實(shí)例教程

    JAVA線程同步實(shí)例教程

    這篇文章主要介紹了JAVA線程同步實(shí)例教程,在Java程序設(shè)計(jì)中有著非常廣泛的應(yīng)用,需要的朋友可以參考下
    2014-08-08
  • 一文解開(kāi)java中字符串編碼的小秘密(干貨)

    一文解開(kāi)java中字符串編碼的小秘密(干貨)

    這篇文章主要介紹了一文解開(kāi)java中字符串編碼的小秘密(干貨),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • MybatisPlus?自定義插件實(shí)現(xiàn)攔截SQL修改功能(實(shí)例詳解)

    MybatisPlus?自定義插件實(shí)現(xiàn)攔截SQL修改功能(實(shí)例詳解)

    這篇文章主要介紹了MybatisPlus?自定義插件實(shí)現(xiàn)攔截SQL修改功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11

最新評(píng)論

水富县| 临猗县| 大化| 且末县| 盘山县| 仁寿县| 邢台县| 棋牌| 新疆| 黄骅市| 普陀区| 台安县| 墨脱县| 韶山市| 云南省| 兴文县| 绍兴县| 巨野县| 砀山县| 宿州市| 许昌市| 木兰县| 红桥区| 永登县| 巴楚县| 达孜县| 综艺| 新民市| 义乌市| 南宫市| 特克斯县| 阳原县| 遂溪县| 九江县| 虎林市| 城固县| 铁岭市| 霍林郭勒市| 调兵山市| 青川县| 三亚市|