按字母排序

对字符串进行排序,用任意一种编程语言来实现,不能使用现有的类,在排序中,字符串“Bc”,“Ad”,“aC”,“Hello”,“Xman”,“little”,“During”,“day”能够排序成“Ad”,"aC",“Bc”,“During”,“day”,“Hello”,“little”,“Hello”,也就是说,在排序的过程并不是传统的按照字符串排序,在排序中还需要将小写字母一并排序,也就是说a字符串要在B或b之前。

 

import java.util.Arrays;
import java.util.Comparator;

public class Test {
public static void main(String[] args) {

	String[] strs={"Bc","Ad","aC","Hello","Xman","little","During","day"};
	Arrays.sort(strs, new Comparator<String>(){
		int cha='a'-'A';
		public int compare(String o1, String o2) {
			char[] so1=o1.toCharArray();
			char[] so2=o2.toCharArray();
			int min=so1.length<so2.length?so1.length:so2.length;
			for(int i=0;i<min;i++){
				if(so1[i]!=so2[i]){
					if(so1[i]-so2[i]==-cha || so1[i]-so2[i]==cha){
						return so1[i]-so2[i];
					}else{
						int so1_1=so1[i];
						int so2_1=so2[i];
						if(so1[i]<='Z'){
							so1_1+=cha;
						}
						if(so2[i]<='Z'){
							so2_1+=cha;
						}
						return so1_1-so2_1;	
					}
				}
			}
			return so1.length-so2.length;	
		}
	});
	
	System.out.println(Arrays.toString(strs));
	
}
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值