import java.util.*;
成都创新互联是一家以网站建设、网页设计、品牌设计、软件运维、成都网站推广、小程序App开发等移动开发为一体互联网公司。已累计为成都雨棚定制等众行业中小客户提供优质的互联网建站和软件开发服务。
public class CharTest {
static Scanner sc=new Scanner(System.in);
public static void main(String[] args) {
System.out.println("请输入随机字母!");
String str=sc.nextLine().replaceAll("[^\\w]+", "").replaceAll("\\d", "");
StringBuilder stb=new StringBuilder();
char[] chs=str.toCharArray();
System.out.println("\n你输入的是:"+str);
//排序!
for(int i=1;ichs.length;i++) {
for (int j = i; j 0; j--) {
if(chs[j]chs[j-1]) {
char tem=chs[j];
chs[j]=chs[j-1];
chs[j-1]=tem;
}
}
}
stb.append(chs);
System.out.println("\n排序:大写--小写--正序排列:"+stb);
System.out.println("\n排序:小写--大写--倒序排列:"+stb.reverse());
}
}
自己封装的一个工具类,可以将汉字按照拼音的首字母排序,支持对Model和字典排序.只能对首字母排序,不支持第二个字母, 实现的原理就是创建一个A-Z的数组,数组中的元素是字典,字典中有两个元素,一个是title,就是当前的首字母 A-Z中的一个,另一个是保存当前title对应的元素的数组,对传入的数组进行遍历获得数组中的一个元素,如果是Model或者字典通过传入的key的值获得要排序的字符串,获得字符串的拼音的首字母,判断拼音的首字母是A-Z中的哪一个,然后放到数组中的对应的字典的数组中.
后来又做了一个对英文的首字母排序的程序,原理和上面的一样,还省略了将汉字转化为拼音的步骤。工具类的名称是:NH_OrderByPinYinFirstLetter。
代码:使用的时候直接调用下面的方法就行,是一个加号方法,第一个参数是保存要排序的元素的数组,第二个参数:如果数组中是Model或者字典,就写排序的依据的key值,如果数组中不是Model或字典,就写nil。
[objc] view plain copy
// 方法
+ (NSMutableArray *)baseOrderPinYinOnArr:(NSMutableArray *)arr ByKey:(NSString *)key 返回值的类
// 返回一个有24个元素的数组,数组里的元素是字典
// 字典里有两对键值对
// title : 当前的拼音首字母 A - Z
// datas : 当前的拼音首字母对应的model所组成的数组
java是按Unicode编码的,与ASCII码是兼容的所以和ASCII码的顺序是一样的。你可以通过下面的代码来输出看一看。
public class JavaUnicode
{
public static void main(String[] args)
{
for(char ch='a';ch='z';ch++)
System.out.print((int)ch+" ");
System.out.println();
for(char ch='A';ch='Z';ch++)
System.out.print((int)ch+" ");
}
}
// 就用冒泡法吧,简单
public class CharArray{
public static void main(String args[]) throws Exception{
char asc[]={'A', 'M', 'B', 'T', 'P', 'Q'};
for(int i=0; iasc.length; i++){
for(int j=i+1; jasc.length; j++){
if(asc[i]asc[j]){
char t = asc[i];
asc[i]=asc[j];
asc[j]=t;
}
}
}
for(int i=0; iasc.length; i++){
System.out.println(asc[i]);
}
}
}