JAVA数字和字母混合排序

公交线路中,分为空调和非空调,如3路、K3路,现排序后显示为
3
5
12
88
K3
K5
K12
K88
想变成统一路线,即
3
K3
5
K5
12
K12
88
K88
我JAVA基本是不懂的,只能大致改改,选择排序条件的按钮上是这样的代码
<select name="sort_condition" style="width: 60px;" >
<option value="LX">
路线

在后面的代码里是这样的
String paixu="";
if("LX".equals(sort_condition)){
paixu="路线"

最后SQL语句里
order by "+sort_condition

谁能帮助,我基本不懂。。。。
应该是JSP的,不是JAVA的。。。。。。

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直接可以处理的

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-17
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)));
}
}本回答被提问者采纳
第2个回答  2010-05-17
疑问,3后面是不是肯定会出现K3

JAVA数字和字母混合排序
你主要看order by 后边的东西就可以了,不需要java来处理sql直接可以处理的

java数字字母混合字符串排序
import java.util.ArrayList;import java.util.Collections;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.a...

java随机生成20个长度为12-20的大小写字母混杂的“单词”,按字典顺序...
\/** * * 由小到大排序 * * 从后向前冒泡 * * @param arr *\/public void bubbleSort(String[] arr) {if (arr == null || arr.length == 0)return;for (int i = 0; i < arr.length - 1; i++) {\/\/ 循环之后下标i处为数组中最小的元素for (int j = arr.length - 1...

java排列组合的算法 譬如我有(A,B,C,D),我想输出的结果是
我觉得可以看成数字的排列如 1 2 3 4分别代表A B C D 就是将1 2 3 4排列 四位的就是1234 三位的就是从这四个数字中取出三个数字,得到的三位数是最小的,如:取 1 2 3 可以得到123 213 321 132等等 其中123是最小的 两为数字的跟三位数字的一样 ...

java实现:从26个字目中任取5个字母,排列组合出所有的可能,打印出来_百度...
private static char[] NUM = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I','J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V','W', 'X', 'Y', 'Z' };\/\/ 所有的字母数 public char[] randNum(int num) {\/\/ ...

Java怎么同时显示:有一列乱序的字符a,c,u,b,e,p,f,z排序并按照英文字母...
我想到一个方案是:定义abcd...一个数字的数组,然后将乱序的字母,循环进行比较,输出每个字母的位置,然后再使用冒泡来排序

java实现abcdgf安顺序排序
{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中怎么对一组具有对应数字的字母排序
\/\/ 先比较数字 if (this.getI() > o.getI()) { \/\/ 表示当前实例的位置在o之前 return -1;} else if (this.getI() == o.getI()) { \/\/ 数字相等开始比较字母 \/\/ char型强转成int行,A到Z各代表多少值应该都知道吧 if (this.getC() < o.getI()) { \/\/ 表示当前实例的位置...

求Java代码 1)将大小写字母混合从键盘输入,然后输出其中的大写字母,小 ...
public static void cout(){Scanner in=new Scanner(System.in);String s=in.nextLine();for(int i=0;i='A'&&c<='Z'){System.out.print(c);}else if(c>='a'&&c<='z'){System.out.print(" ");}}}

JAVA:怎样将里面的数字进行排序 字母顺序不变。 例子:dsad4dsff5fdsf9f...
这种没有特定规律的,只能一个个遍历放到list里面,然后记录一下数字的位置,进行拼接。

相似回答