Java拆分为姓和名

Java拆分为姓和名

/**
 * 姓名拆分为姓和名
 *
 * @param name 姓名
 * @return 姓,名
 */
public static String[] getNameSplit(String name) {
    String[] compoundSurname = {"太史", "濮阳", "颛孙", "闻人", "叔孙", "公上", "夹谷",
            "汝嫣", "褚师", "公户", "兀官", "西门", "城池", "东郭", "令狐", "公乘", "南郭", "漆雕",
            "宗政", "公良", "夏侯", "宰父", "公山", "司徒", "公皙", "宗正", "雍门", "车正", "仲孙",
            "万俟", "司寇", "上官", "仲长", "贯丘", "司城", "南荣", "第五", "綦毋", "宇文", "钟离",
            "公仪", "淳于", "左丘", "尉迟", "百里", "东宫", "慕容", "子桑", "公仲", "东方", "乐正",
            "胡母", "子书", "王孙", "屈突", "吴铭", "东里", "谷梁", "微生", "南宫", "东门", "公伯",
            "达奚", "段干", "拓跋", "澹台", "轩辕", "公祖", "鲜于", "公坚", "公孙", "贺兰", "亓官",
            "诸葛", "南门", "司马", "北宫", "申屠", "司空", "皇甫", "公羊", "尔朱", "公玉", "公西",
            "即墨", "毋丘", "长孙", "屋庐", "梁丘", "张廖", "公冶", "赫连", "闾丘", "东乡", "羊舌",
            "单于", "相里", "欧阳", "太叔", "巫马", "呼延", "独孤", "公门", "端木", "壤驷", "子车"};
    name = name.replace(" ", "");
    if (name.length() > 1) {
        // true:全是英文和数字
        String regex = "[a-zA-Z0-9]+";
        // true:含有英文
        String regex1 = ".*[a-zA-z].*";
        if (!(name.matches(regex) || name.matches(regex1))) {
            String[] names = new String[2];
            List<String> compoundSurnameList = Arrays.asList(compoundSurname);
            String x2 = name.substring(0, 2);
            if (name.length() > 2) {
                if (compoundSurnameList.contains(x2)) {
                    names[0] = x2;
                    names[1] = name.substring(2);
                    return names;
                }
            }
            names[0] = name.substring(0, 1);
            names[1] = name.substring(1);
            return names;
        }
    }
    return null;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值