对多个字符串进行排序,用Java语言实现,不能使用现有的类

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;



public class StringCmp {

	static String[] strs = null;
	public static void order(String[] strs){
		
		for(int i = 0 ; i < strs.length - 1; i++){
			
			for(int j = 0 ; j < strs.length - 1 - i ; j++ ){
				
				if(compare(strs[j],strs[j+1])){
					exchange(j,j+1);
				}
			}
		}
	}
	
	public static boolean compare(String str1 , String str2){
		
		char[] chars1 = str1.toCharArray();
		char[] chars2 = str2.toCharArray();
		int lenMin = Math.min(chars1.length, chars2.length);
		for(int i = 0 ; i < lenMin ; i++){
			int charToSmall1 = (chars1[i] > 96)?chars1[i] - 96: chars1[i] - 64;
			int charToSmall2 = (chars2[i] > 96)?chars2[i] -96: chars2[i] - 64;
			if(charToSmall1 == charToSmall2){
				if(chars1[i] > chars2[i]){
					return true;
				}else if(chars1[i] < chars2[i]){
					return false;
				}else{
					continue;
				}
			}else{
				if(charToSmall1 > charToSmall2){
					return true;
				}else{
					return false;
				}
			}
		}
		return false;
	}
	public static void exchange(int i , int j){
		String tmp;
		tmp = strs[i];
		strs[i] = strs[j];
		strs[j] = tmp;
	}
	public static void main(String[] args) {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		try {
			strs = br.readLine().split(" ");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		for(String tmp : strs){
			System.out.print(tmp + " ");
		}
		System.out.println();
		order(strs);
		for(String tmp : strs){
			System.out.print(tmp + " ");
		}
	}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值