那些奇奇怪怪的需求(一):PinyinHelper的使用、生成指定长度的随机码

背景:

需求是要给每条数据生成一个字符拼音首字母+6位字母数字的随机码。嗯简单易懂。


1、生成6位长度的随机码。

这玩意还挺好理解的,首先明白字符串String是由一个一个char字符组成的数组(字面理解)。String里面有个方法charAt(int i),i参数是指String字符串的下标索引(也就是char[]数组的下标索引),

比如一个

String str = "哈哈哈123abc";//这里不分中英文数字限制,一个字符就占用一个位置

System.out.println(str.charAt(2));//很容易得到一个哈

所以现在就这样,看需求是要生成6个长度的数字+大小写字母混合,那我们就先声明一个字符串存储所有数字和英文字符,之后写一个循环,出口为长度6,用StringBuilder每次添加一个就行了。很容易得到代码:

完整代码
测试

2、获取字符拼音首字母。

这个需求也好理解,就好像输入【搞黄色】,能得到【GHS】一样。菜鸡的我一看到需求其实不知道怎么下手,毕竟短暂的生涯中暂时还没写过跟中文字符打交道的代码,不过作为一名合格的CV战士,通过网上冲浪,知道了别人已经造好了轮子,有个PinYin4j的东西,专门用来获取指定字符(参数也都是用char字符接收)的拼音。

舒服啊大神还是多,所以马上就用了起来,

首先maven引入依赖:

依赖

代码简单粗暴,直接拿PinyinHelper工具类使用就行了。

这里我们可以很容易发现一个方法:toHanyuPinyinStringArray(char ch),返回是String数组,测试一下很容易能得出结论。

多音字也能都把各种拼音打印出来

不过方法里面每次只能输入一个字,需求是需要字符串,也就是多个字符组成的,所以我们就自己改造一下方法。String有个toCharArray()方法,就是把字符串转化为字符数组,因此很容易可以写出来。

完整代码

你可能感兴趣的:(那些奇奇怪怪的需求(一):PinyinHelper的使用、生成指定长度的随机码)