JAVA文本分段的处理

我们发布一段文本,这段文本是没有排版分段的,我们按照给他做一下分段处理。

主要要用到的是正则匹配。
原文本:
在这里插入图片描述
这段文本是没有排版的,下面我们按照格式为他做一下简单的分段。主要是按照关键字,比如第章、第节,根据正则匹配,匹配到这些关键字,就对这些关键字做前后换行处理,代码如下:

public static void main(String[] args) throws Exception {

		// 按指定模式在字符串查找
		String line = "第一章引言 第一节 编写目的本文档编写主要提供软件开发中数据库结构的参考,供开发人员了解系统的信息存储结构。本文档的预期阅读人员为软件开发系统项目经理、软件开发人员、项目实施人员和维护人员。第二节范围计算机软件产品开发文件编制指南 ;";
		line = chapterFormat(line);
		line = numFormat(line);

		System.out.println(line);

	}

	private static String chapterFormat(String line) {
		String pattern = "第[一二两三四五六七八九十○零百0-91234567890]{1,12}[编篇章节条]";
		Pattern  = Pattern.compile(pattern);

		// 获取 matcher 对象
		Matcher m = p.matcher(line);
		StringBuffer sb = new StringBuffer();
		while(m.find()){	    	 
			m.appendReplacement(sb,"\n"+m.group(0)+"\n");
		}
		m.appendTail(sb);
		return sb.toString() ;
	}	

转化后的格式:
在这里插入图片描述

当然,也有可能章节格式,不是按 第章、第节的,比如只有序号 1、 2、 3、 4、,同理的,也是按照正则匹配。

private static String numFormat(String line) {
		String pattern = "[一二两三四五六七八九十○零百0-91234567890]{1,12}、";
		Pattern p = Pattern.compile(pattern);

		// 获取 matcher 对象
		Matcher m = p.matcher(line);
		StringBuffer sb = new StringBuffer();
		while(m.find()){	    	 
			m.appendReplacement(sb,"\n"+m.group(0));
		}
		m.appendTail(sb);
		return sb.toString() ;
	}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值