• 字符串排序


    package javastudy;
    
    
    public class Test4 {
    	public static void main(String[] args){
    		String s [] = {"dad","bood","bada","Admin","xxx","Good",
    				"aete","cc","Ko","Beta","Could","Goodd","Gooda"};
    		
    		String stemp = null ;
    		//下面的是冒泡排序 
    
    		for (int i = 0; i < s.length; i++) {
    			for (int j = 0; j < s.length - i - 1; j++) {
    				if (stringCmp(s[j], s[j + 1]) > 0) {
    					stemp = s[j];
    					s[j] = s[j + 1];
    					s[j + 1] = stemp;
    				}
    			}
    		}
    		
    		for (int i=0;i<s.length ;i++){
    			System.out.print(s[i]+" ") ;
    		}
    	}
    	/**
    	 * A(97),a(65)
    	 * @param s1
    	 * @param s2
    	 * @return >0-->s1>s2
    	 */
    	public static int stringCmp(String s1, String s2 ){
    		int nResult = s1.length() - s2.length() ;;
    		int nLen = Math.min(s1.length(), s2.length()) ;
    		int nCharOrder1, nCharOrder2;
    		char aChar1 [] = s1.toCharArray();
    		char aChar2 [] = s2.toCharArray();
    	
    		for (int i = 0; i < nLen; i++) {
    			//如果在nLen内有char不一样(包括同一char,一个大写一个小写,和两个不同的char)
    			if (aChar1[i] != aChar2[i]) {
    				nCharOrder1 = aChar1[i] > 96 ? aChar1[i] - 96 : aChar1[i] - 64;
    				nCharOrder2 = aChar2[i] > 96 ? aChar2[i] - 96 : aChar2[i] - 64;
    				if (nCharOrder1 != nCharOrder2) {// 不同的char(这里不包括大小写,如A ,a)
    					nResult = nCharOrder1 - nCharOrder2;
    					break;
    				} else {
    					nResult = aChar1[i] - aChar2[i]; // 相同 的char时(A,a)
    					break;
    				}
    			}
    			//如果在nLen 内一直没有不同的char
    		}
    		
    		return nResult ;
    	}
    }
    

     结果

     Admin aete Beta bada bood Could cc dad Good Gooda Goodd Ko xxx 

  • 相关阅读:
    IOS-Storyboard全解析-第一部分
    IOS-Socket
    IOS-XMPP
    IOS-源代码管理工具(Git)
    IOS-源代码管理工具(SVN)
    python环境配置
    【移动开发】Android中WIFI开发总结(二)
    【移动开发】Android中WIFI开发总结(一)
    Android 连接Wifi和创建Wifi热点 demo
    Android 判断用户2G/3G/4G移动数据网络
  • 原文地址:https://www.cnblogs.com/chuiyuan/p/4658681.html
Copyright © 2020-2023  润新知