用 Java 实现将一段文字按照 句号 和 感叹号 进行分割
·
下面是一个完整的 Java 示例代码,实现该功能:
✅ Java 代码实现
public class TextToParagraph {
public static void main(String[] args) {
// 示例文本
String text = "这是一个句子。这是第二个句子!这是第三个句子。最后一个感叹句!";
// 处理文本并添加 p 标签
String result = addParagraphTags(text);
// 输出结果
System.out.println(result);
}
/**
* 将文本按句号和感叹号分割,每段添加 <p> 标签
* @param text 输入文本
* @return 添加 p 标签后的 HTML 段落字符串
*/
public static String addParagraphTags(String text) {
if (text == null || text.trim().isEmpty()) {
return "";
}
// 使用正则表达式按“。”和“!”分割,同时保留分隔符
// 零宽度断言:在句号或感叹号后拆分,但保留它们
String[] parts = text.split("(?<=[。!])");
StringBuilder result = new StringBuilder();
for (String part : parts) {
part = part.trim(); // 去除首尾空格
if (!part.isEmpty()) {
// 去掉末尾可能多余的标点(如果已经包含)
result.append("<p>").append(part).append("</p>\n");
}
}
return result.toString().trim();
}
}
🔍 输出结果
对于输入:
这是一个句子。这是第二个句子!这是第三个句子。最后一个感叹句!
输出为:
<p>这是一个句子。</p>
<p>这是第二个句子!</p>
<p>这是第三个句子。</p>
<p>最后一个感叹句!</p>
📌 技术说明
(?<=[。!]):这是一个 正向后行断言(positive lookbehind),表示在“。”或“!”之后拆分,但保留该符号在原字符串中。trim():去除每段前后空格。- 使用
StringBuilder提高字符串拼接效率。
✅ 扩展建议(可选增强)
-
支持问号(?)也作为分隔符:
String[] parts = text.split("(?<=[。!?])"); -
去除空段落或过滤空白:
已通过isEmpty()判断处理。 -
输出为 HTML 文件:
try (FileWriter fw = new FileWriter("output.html")) { fw.write("<html><body>\n" + result + "\n</body></html>"); } catch (IOException e) { e.printStackTrace(); }
更多推荐
所有评论(0)