背景:
需求是要给每条数据生成一个字符拼音首字母+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()方法,就是把字符串转化为字符数组,因此很容易可以写出来。