2011-10-04 295 views
-5

我想将Q4,Q7,Q2,Q1排序为Q1,Q2,Q4,Q7。如何对java中的字母数字字符进行排序?

谢谢。

+5

你的例子可以很好地排序字符串的自然顺序。但是,大概你可以在Q7之后得到“Q10”? –

+0

你能举例说明如何对此进行排序吗? – Vasu

+0

条目的格式是什么?它是单个非数字后面跟单个数字/多个数字吗?订单优先顺序是什么?首先是字符,然后是数字? –

回答

2

您可以使用Collections.Sort方法与字符串比较器或可以编写自己的比较器。

样品

String [] str = new String[]{"Q4","Q7","Q2","Q1"}; 
     List<String> list = Arrays.asList(str); 

     Collections.sort(list, String.CASE_INSENSITIVE_ORDER); 
     System.out.println(list); 
0

字符串实现媲美。根据你持有它们的方式,即使用List或数组,你可以分别使用Collections.sort()和Arrays.sort()。

0

你应该实现自己的比较,即:

public class ComparatorSO implements Comparator<String>{ 

    @Override 
    public int compare(String o1, String o2) { 
     Integer i1 = Integer.parseInt(o1.substring(1)); 
     Integer i2 = Integer.parseInt(o2.substring(1)); 
     return i1.compareTo(i2); 

    } 

} 

没有测试过,并假设输入字符串形式QN具有n为int。但问题不是很清楚。

相关问题