JAVA 实现内容按标点符号断句

JAVA
需求:文章内容按标点符号断句,字数需要设置上限 不能超过 50个字

/**
 * @param content   内容
 * @param chunkSize 字数限制
 * @return
 */
public static List<String> contentDiv(String content, int chunkSize) {
    if (StringUtils.isEmpty(content)) return new ArrayList<>();
    LinkedList<String> result = new LinkedList<>();
    Pattern pattern = Pattern.compile("([^,。]{1," + chunkSize + "})([,。]?)");
    Matcher matcher = pattern.matcher(content);
    while (matcher.find()) {
        String sentence = matcher.group(1) + matcher.group(2);
        if (sentence.endsWith(",") || sentence.endsWith("。")) {
            result.add(sentence);
        } else if (!result.isEmpty()) {
            String previousSentence = result.get(result.size() - 1);
            if (!previousSentence.endsWith(",") && !previousSentence.endsWith("。")) {
                result.set(result.size() - 1, previousSentence + sentence);
            } else {
                result.add(sentence);
            }
        } else {
            result.add(sentence);
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值