Java實(shí)現(xiàn)將一段文字按照句號(hào)和感嘆號(hào)進(jìn)行分割的示例代碼
下面是一個(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)
堆(優(yōu)先隊(duì)列)是一種典型的數(shù)據(jù)結(jié)構(gòu),其形狀是一棵完全二叉樹(shù),一般用于求解topk問(wèn)題。本文將利用Java語(yǔ)言實(shí)現(xiàn)堆,感興趣的可以學(xué)習(xí)一下2022-05-05
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)方法
這篇文章主要給大家介紹了關(guān)于java跳出for循環(huán)的三種常見(jiàn)方法,需要的朋友可以參考下2023-07-07
詳解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ò)程全記錄
有人說(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)證碼的方法詳解
kaptcha 是一個(gè)非常實(shí)用的驗(yàn)證碼生成工具。有了它,你可以生成各種樣式的驗(yàn)證碼,因?yàn)樗强膳渲玫?,下面這篇文章主要給大家介紹了關(guān)于Spring MVC中使用Google kaptcha驗(yàn)證碼的方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-10-10
MybatisPlus?自定義插件實(shí)現(xiàn)攔截SQL修改功能(實(shí)例詳解)
這篇文章主要介紹了MybatisPlus?自定義插件實(shí)現(xiàn)攔截SQL修改功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11

