百家姓排序1

对姓名按百家姓进行排序:(待优化)

/**
 * Created by Administrator on 2017/5/17.
 */
package com.zte.sunquan.demo.nsort;
public class NameSort {
    public static String[] sort(String... args) {
        String[] result = new String[hundredName.length()];
        for (int i = 0; i < hundredName.length(); i++)
            result[i] = i+":";
        for (String name : args) {
            int i = hundredName.indexOf(name.substring(0, 1));
            if (i != -1) {
                result[i] += name+",";
            }
        }
        return result;
    }
    private static final String hundredName = "赵钱孙李周吴郑王" +
            "冯陈褚卫   蒋沈韩杨" +
            "朱秦尤许   何吕施张" +
            "孔曹严华   金魏陶姜" +
            "戚谢邹喻   柏水窦章" +
            "云苏潘葛   奚范彭郎" +
            "鲁韦昌马   苗凤花方" +
            "俞任袁柳   丰鲍史唐" +
            "费廉岑薛   雷贺倪汤" +
            "滕殷罗毕   郝邬安常" +
            "乐于时傅   皮卞齐康" +
            "伍余元卜   顾孟平黄" +
            "和穆萧尹   姚邵湛汪" +
            "祁毛禹狄   米贝明臧" +
            "计伏成戴   谈宋茅庞" +
            "熊纪舒屈   项祝董梁" +
            "杜阮蓝闵   席季麻强" +
            "贾路娄危   江童颜郭" +
            "梅盛林刁   钟徐丘骆" +
            "高夏蔡田   樊胡凌霍" +
            "虞万支柯   昝管卢莫" +
            "经房裘缪   干解应宗" +
            "丁宣贲邓   郁单杭洪" +
            "包诸左石   崔吉钮龚" +
            "程嵇邢滑   裴陆荣翁" +
            "荀羊於惠   甄麴家封" +
            "芮羿储靳   汲邴糜松" +
            "井段富巫   乌焦巴弓" +
            "牧隗山谷   车侯宓蓬" +
            "全郗班仰   秋仲伊宫" +
            "宁仇栾暴   甘钭厉戌" +
            "祖武符刘   景詹束龙" +
            "叶幸司韶   郜黎蓟薄" +
            "印宿白怀   蒲邰从鄂" +
            "索咸籍赖   卓蔺屠蒙" +
            "池乔阴郁   胥能苍双" +
            "闻莘党翟   谭贡劳逢" +
            "姬申扶堵   冉宰郦雍" +
            "郤璩桑桂   濮牛寿通" +
            "边扈燕冀   郏浦尚农" +
            "温别庄晏   柴瞿阎充" +
            "慕连茹习   宦艾鱼容" +
            "向古易慎   戈廖庾终" +
            "暨居衡步   都耿满弘" +
            "匡国文寇   广禄阙东" +
            "欧殳沃利   蔚越菱隆" +
            "师巩厍聂   晃勾敖融" +
            "冷訾辛阚   那简饶空" +
            "曾毋沙乜   养鞠须丰" +
            "巢关蒯相   查后荆红" +
            "游竺权逯   盖益桓公" +
            "万俟司马   上官欧阳" +
            "夏侯诸葛   闻人东方" +
            "赫连皇甫   尉迟公羊" +
            "澹台公冶   宗政濮阳" +
            "淳于单于   太叔申屠" +
            "公孙仲孙   轩辕令狐" +
            "钟离宇文   长孙慕容" +
            "司徒司空   百家姓终";

}

测试:
package com.zte.sunquan.demo.nsort;

import org.testng.annotations.Test;
import org.testng.collections.Lists;

import java.io.*;
import java.util.Arrays;
import java.util.List;

/**
 * Created by Administrator on 2017/5/17.
 */
public class NameSortTest {
    @Test
    public void test1() throws IOException {
        String[] sort = NameSort.sort(readFile().toArray(new String[]{}));
        Arrays.stream(sort).filter(s->s.length()>s.indexOf(':')+1).forEach(System.out::println);
    }

    private List<String> readFile() throws IOException {
        List<String> result = Lists.newArrayList();
        InputStream is = this.getClass().getResourceAsStream("/names.txt");
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);
        String line = "";
        while ((line = br.readLine()) != null) {
            result.add(line);
        }
        br.close();
        return result;
    }
}

姓名文件:
赵三
钱三
孙四
李三
李四
孙三
输出:
0:赵三,
1:钱三,
2:孙四,孙三,
3:李三,李四,

===============================================
Default Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值