Java 识别字符串中的手机号

这段代码实现了一个基于正则表达式的手机号码识别服务。它能从输入的字符串中找出符合手机号码格式的数字,并将其封装为`TelInfo`对象。识别的手机号码格式包括11位数字的标准格式和带有分隔符的格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.inspur.iaistelnumber.service.impl;

import com.inspur.iaistelnumber.entity.TelData;
import com.inspur.iaistelnumber.entity.TelInfo;
import com.inspur.iaistelnumber.service.TelService;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

@Service
public class TelServiceImpl implements TelService {
    @Override
    public TelData identify(String words) {
        String regex = "(13[0-9]{9}|14[0-14-9]{9}|15[0-35-9]{9}|16[2567]{9}|17[0-8]{9}|18[0-9]{9}|19[0-35-9]{9})";
        String regex1 = "\\d{3,4}-\\d{7,8}";

        int count = 0;
        List<TelInfo> list = new ArrayList<>();
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(words);
        while (matcher.find()) {

            if (words.length() == matcher.end()) {
                TelInfo info = new TelInfo();
                count++;
                info.setBegin(matcher.start());
                info.setEnd(matcher.end());
                info.setNum(matcher.group());
                info.setType("手机号码");
                list.add(info);
            }else if (words.charAt(matcher.end()) < 48 || words.charAt(matcher.end()) > 57) {
                TelInfo info = new TelInfo();
                count++;
                info.setBegin(matcher.start());
                info.setEnd(matcher.end());
                info.setNum(matcher.group());
                info.setType("手机号码");
                list.add(info);
            }
        }
        return null;
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值