代码之家  ›  专栏  ›  技术社区  ›  TheWelshManc

如何按数字排序字符串数组

  •  2
  • TheWelshManc  · 技术社区  · 7 年前

    String [] scoreboard = {"AAA - 100", "BBB - 0", "CCC - 200"};
    

    CCC - 200
    AAA - 100
    BBB - 0
    

    到目前为止,我的代码如下:

    float ty = height - height/1.25;
    for (int i = 0; i < scoreboard.length; i++) {
      text(scoreboard[i], width/2, ty);
      ty += 60;
    }
    

    2 回复  |  直到 7 年前
        1
  •  1
  •   Rabbid76    7 年前

    你可以合并 sort() reverse() 通过将它们按升序排序并将其反转而组合在一起。

    String [] scoreboard = {"AAA - 100", "BBB - 0", "CCC - 200"};
    
    scoreboard = reverse(sort(scoreboard));
    
        2
  •  0
  •   Kevin Workman    7 年前

    如果我是你,我会考虑创建一个同时包含 name score 变量,而不是处理必须解析的字符串。

    不管怎样,不管你用的是 String

    基本上,你会想打电话给 Arrays.sort() 函数并传入自定义 Comparator 在自定义类或字符串中根据数字值进行排序。

    MyClass[] myArray = // create array
    Arrays.sort(myArray, new Comparator<MyClass>(){
      public int compare(MyClass one, MyClass two){
        return two.score.compareTo(one.score);
      }
    });
    

    这种方法假设您有一个名为 MyClass Integer 分数 变量。如果你坚持 字符串 compare() 函数必须解析 字符串

    推荐文章