Java实现将一段文字按照句号和感叹号进行分割的示例代码
作者:liangblog
这篇文章介绍了一个用Java实现的代码示例,该代码能够将一段文字按照句号和感叹号进行分割,并在分割后去除每段的前后空格,使用了正向后行断言和StringBuilder来提高效率,需要的朋友可以参考下
下面是一个完整的 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();
}
到此这篇关于Java实现将一段文字按照句号和感叹号进行分割的示例代码的文章就介绍到这了,更多相关Java文字按照句号和感叹号分割内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
