按整数值对文本行进行排序

时间:2014-05-08 10:32:08

标签: java sorting text numbers

我需要一些帮助来排序文本行。

Kazimira Danutė PRUNSKIENĖ : 3,86%
Dalia GRYBAUSKAITĖ : 68,21%
Valdemar TOMAŠEVSKI : 4,68%
Algirdas BUTKEVIČIUS : 11,68%
Valentinas MAZURONIS : 6,08%
Česlovas JEZERSKAS : 0,66%
Loreta GRAUŽINIENĖ : 3,57%

我需要按数字对文本文档进行排序。

Dalia GRYBAUSKAITĖ : 68,21%
Algirdas BUTKEVIČIUS : 11,68%
Valentinas MAZURONIS : 6,08%
Valdemar TOMAŠEVSKI : 4,68%
Kazimira Danutė PRUNSKIENĖ : 3,86%
Loreta GRAUŽINIENĖ : 3,57%
Česlovas JEZERSKAS : 0,66%

最好的方法是什么?

           Reader reader = new InputStreamReader( new FileInputStream(desktopPath + "/RINKIMAI/INFO.txt"), "UTF-8");
           @SuppressWarnings("resource")
           BufferedReader br = new BufferedReader(reader);

          java.util.List<Float> allMatches = new ArrayList<Float>();
           String word = null;
           while((word =br.readLine()) != null){
               Pattern p = Pattern.compile("\\d+,\\d+");
               Matcher m = p.matcher(word); 
               while (m.find()) {
                   allMatches.add(Float.parseFloat(m.group()));   
               }
               Arrays.sort(allMatches);
           }

我无法将所有已解析的信息放入数组中,因为它的浮点类型无法找到解决方案..并且仍然可以在按降序排序所有信息后将其恢复为满所有信息都以降序排列?

1 个答案:

答案 0 :(得分:2)

编写一个Comparator,通过在String上拆分并解析第二部分中的":"来比较两个float值。然后使用Collections.sortArrays.sort,传入Comparator