JAVA数字和字母混合排序 JAVA排序数字字母混合
\u5728EXCEL\u4e2d\u5982\u4f55\u5c06\u6570\u5b57\u548c\u5b57\u6bcd\u4e00\u8d77\u6392\u5e8f\u5de5\u5177/\u539f\u6599
excel \u7535\u8111
\u65b9\u6cd5/\u6b65\u9aa4
1\u3001\u9996\u5148\u6253\u5f00excel\u8868\u683c\uff0c\u9009\u4e2d\u8981\u8fdb\u884c\u6392\u5217\u7684\u5355\u5143\u5217\uff0c\u70b9\u51fb\u201c\u5f00\u59cb\u2014\u6392\u5e8f\u201d\uff0c\u9009\u62e9\u5347\u5e8f\u6216\u964d\u5e8f\uff0c\u5f39\u51fa\u7a97\u53e3\u4e2d\u70b9\u51fb\u201d\u786e\u5b9a\u201c\u3002
2\u3001\u9009\u4e2d\u8fd9\u5217\u5355\u5143\u683c\uff0c\u70b9\u51fb\u201c\u6570\u636e\u2014\u2014\u5206\u5217\u201d\u3002
3\u3001\u5f39\u51fa\u65b0\u5bf9\u8bdd\u6846\uff0c\u52fe\u9009\u201c\u56fa\u5b9a\u5bbd\u5ea6\u201d\uff0c\u70b9\u51fb\u201d\u4e0b\u4e00\u6b65\u201c\u3002
4\u3001\u51fa\u73b0\u6807\u5c3a\uff0c\u4ece\u6700\u5de6\u4fa7\u5f80\u53f3\u62c9\uff0c\u7528\u6807\u5c3a\u7ebf\u5c06\u5b57\u6bcd\u548c\u6570\u5b57\u5206\u5f00\uff0c\u70b9\u51fb\u201d\u4e0b\u4e00\u6b65\u201c\u3002
5\u3001\u5728\u76ee\u6807\u533a\u57df\u4e2d\uff0c\u9009\u62e9\u5355\u5143\u683c\u533a\u57df\uff0c\u70b9\u51fb\u201d\u5b8c\u6210\u201d\u3002
6\u3001\u9009\u4e2dCD\u4e24\u5217\u7684\u6570\u636e\uff0c\u70b9\u51fb\u201c\u5f00\u59cb\u2014\u6392\u5e8f\u2014\u2014\u81ea\u5b9a\u4e49\u6392\u5e8f\u201d\uff0c\u9009\u62e9\u5347\u5e8f\u6392\u5217\u3002
7\u3001\u70b9\u51fb\u201c\u786e\u5b9a\u201d\u3002
8\u3001\u5c06\u6570\u5b57\u548c\u5b57\u6bcd\u6392\u5217\u5b8c\u6210\uff0c\u5c06CD\u4e24\u5217\u5220\u9664\u5373\u53ef\u3002
import java.util.ArrayList;import java.util.List;public class Sort {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubString[] nums = { "100A", "98.5", "98.5A", "34", "52", "100", "98","98.5B" };// \u5192\u6ce1\u6392\u5e8f\u6cd5\u6392\u5e8ffor (int i = 0; i = 65&& (int) (nums[j].toCharArray()[nums[j].length() - 1]) = 65&& (int) (nums[j + 1].toCharArray()[nums[j + 1].length() - 1]) ascii2) {String temp = nums[j];nums[j] = nums[j + 1];nums[j + 1] = temp;}} else if (!char1 && char2) {// \u5982\u679c\u540e\u9762\u4e00\u4e2a\u6570\u5b57\u6709\u5b57\u6bcdString temp = nums[j];nums[j] = nums[j + 1];nums[j + 1] = temp;}}}}for (int i = 0; i < nums.length; i++) {System.out.println(nums[i]);}}}
\u6211\u4e3a\u4e86\u8d4b\u503c\u65b9\u4fbf\uff0c\u7528\u7684\u662fString\u6570\u7ec4\uff0c\u4f46\u662f\u8ddf\u7528list\u6ca1\u6709\u533a\u522b\uff0c\u65b9\u6cd5\u8fd8\u662f\u4e00\u6837\u7684\uff0c\u53ea\u662f\u83b7\u53d6\u957f\u5ea6\u7684\u65f6\u5019\u8c03\u7684\u65b9\u6cd5\u4e0d\u540c\u3002\u6570\u7ec4\u7528.length, list\u7528\u7684\u662f.size()\u3002
SELECT *
FROM (SELECT TO_CHAR(LEVEL) BUS_NO
FROM DUAL
CONNECT BY LEVEL <= 10
UNION ALL
SELECT 'K' || LEVEL FROM DUAL CONNECT BY LEVEL <= 10)
ORDER BY (CASE
WHEN INSTR(BUS_NO, 'K') <> 0 THEN
TO_NUMBER(SUBSTR(BUS_NO, 2, LENGTH(BUS_NO) - 1))
ELSE
TO_NUMBER(BUS_NO)
END)
你主要看order by 后边的东西就可以了,不需要java来处理sql直接可以处理的
public class Test
{
/**
* 混合字串数组排序。
* @param mixedStringArray 混合字串数组。必需是:{"3","K3","4","5","K4","K5"}类似;
* @return 排序后数组
*/
public static String[] sortMixedStringArray(String[] mixedStringArray)
{
String temString = null;
for (int i = 0,aLength = mixedStringArray.length; i < aLength; i++) {
for (int j = i+1; j < aLength; j++) {
if(getNumberInString(mixedStringArray[i],"K") > getNumberInString(mixedStringArray[j],"K"))
{
temString = mixedStringArray[i];
mixedStringArray[i] = mixedStringArray[j];
mixedStringArray[j] = temString;
}
}
}
temString = null;
return mixedStringArray;
}
/**
* 截取字串的第一位,保留字串中剩下的数字
* @param str 字串
* @param firstLetter
* @return 数字
*/
public static int getNumberInString(String str,String firstLetter)
{
int _int =0;
if(str.indexOf( String.valueOf(firstLetter)) == 0)
{
_int = Integer.valueOf(str.substring(1));
}else {
_int = Integer.valueOf(str);
}
return _int;
}
public static void main(String[] args) {
String[] str = {
"3",
"5",
"12",
"88",
"K3",
"K5",
"K12",
"K88"};
System.out.println(Arrays.toString(str));
System.out.println(Arrays.toString( sortMixedStringArray(str)));
}
}
疑问,3后面是不是肯定会出现K3
绛旓細System.out.println();} else {// 澶氫釜鍏鎺掑垪 for (int i = start; i <= end; i++) { char temp = source[start];// 閫愪綅浜ゆ崲 source[start] = source[i];source[i] = temp;perm(source, start + 1, end);// 閫掑綊鍏ㄦ帓鍒 // 杩樺師锛屼负涓嬩釜鏇挎崲鍋氬噯澶 temp = source[start];...
绛旓細import java.util.ArrayList;import java.util.List;public class Sort {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubString[] nums = { "100A", "98.5", "98.5A", "34", "52", "100", "98","98.5B" };// 鍐掓场鎺掑簭娉...
绛旓細浣犱富瑕佺湅order by 鍚庤竟鐨勪笢瑗垮氨鍙互浜,涓嶉渶瑕java鏉ュ鐞唖ql鐩存帴鍙互澶勭悊鐨
绛旓細String绫诲疄鐜颁簡Comparable鎺ュ彛锛屽叾compareTo鏂规硶涓畾涔夌殑鏄寜璇ュ瓧绗︿覆鐨勨滃瓧鍏搁『搴忊濇瘮杈冨ぇ灏忥紝鍦ㄨ繖涓瓧鍏镐腑锛岄噰鐢ㄩ氱敤鐨勯『搴忥紝鐩存帴姣斿悇涓崟涓殑瀛楃鐨勫ぇ灏忥紝鍗鏁板瓧姣瀛楁瘝灏忋傝孋ollections.sort()鏂规硶姝f槸鍩轰簬Comparable鎺ュ彛鐨刢ompareTo鏂规硶姣旇緝澶у皬鐨勩傛墍浠ヤ綘浼氬緱鍒拌繖涓粨鏋溿傚鏋滆閲嶅畾涔夐『搴忥紝鍦ㄤ竴鑸儏鍐典笅锛...
绛旓細import java.util.Comparator;import java.util.List;public class Sorter { public static void main(String[] args) { List<String> strs = new ArrayList<String>();strs.add("aa2");strs.add("aa100");strs.add("aa1");strs.add("aa10");strs.add("aa78");System.out.println(...
绛旓細Ea = 0.8;m=2;n0=100000;[s,t]=meshgrid(303:2:403,200:20:5000);n=exp(-Ea./(k.*303)).*n0./exp(-Ea./(k.*s));f=m./n.*((t./n).^(m-1)).*exp(-(t./n).^m);surf(t,s,f);view([1,0.2,1]);figure;[C,h]=contour(t,f,s,10,'LineWidth',2);c...
绛旓細鎶鏁板瓧杞垚String鍨嬬殑鐒跺悗鎶婂畠浠叏閮芥斁鍏ヤ竴涓猄tring鏁扮粍閲 鐒跺悗璋冪敤Arrays.sort(String[]);杩欐牱灏变細鎶婁綘鐨勮繖涓暟缁勮繘琛鎺掑簭銆傘傘
绛旓細import java.util.Arrays;import java.util.Comparator;public class Test{public static void main(String[] args){String[] arrays = { "almn", "fba", "cba", "aa", "ab", "bb", "sadfafda", "kadfafda", "cc" };Arrays.sort(arrays, new Comparator<String>(){public int compare...
绛旓細{sort();}//adcdef 鎺掑簭static void sort(){char[] chr={'d','a','c','e','f','b'};System.out.println("鎺掑簭鍓");printAry(chr);for(int i=0;i<chr.length;i++){char c;for(int j=i+1;j<chr.length;j++){if (chr[i]>chr[j]){c=chr[i];chr[i]=chr[j]...
绛旓細鍦java涓瀵硅嫳鏂瀛楁瘝杩涜姣旇緝鐨勬椂鍊欙紝鍦╦ava铏氭嫙鏈轰腑锛屼粬棣栧厛浼氳浆鎹㈡垚ASII鏉ヨ繘琛屾瘮杈冿紝鎵浠ュ彲浠ョ洿鎺ュ啓锛屽鏋滄槸澶у啓鍜屽皬鍐欑殑姣旇緝鐨勮瘽锛屽ぇ鍐欒鍔犱笂涓瀹氱殑鏁板瓧锛屾墠鑳借繘琛屾瘮杈冿紝濡傛灉瀚岄夯鐑︼紝浣犱篃鍙互灏嗗ぇ鍐欒浆鍖栨垚灏忓啓杩涜姣旇緝锛岄噰鐢ㄥ啋娉℃硶鎺掑簭鍚