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

时间:2018-08-25 14:11:38

标签: processing

所以我有一个字符串数组

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 个答案:

答案 0 :(得分:1)

您可以将sort()reverse()组合在一起,方法是将它们按升序排序并反转。

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

scoreboard = reverse(sort(scoreboard));

答案 1 :(得分:0)

如果我是您,我会考虑创建一个同时包含namescore变量的类,而不是使用您必须解析的字符串。

无论哪种方式,无论您使用的是String值还是自定义类,我都会在Google中搜索“ java sort array”之类的结果。

基本上,您将要调用Arrays.sort()函数并传递自定义Comparator以根据数字值在自定义类或字符串中进行排序。< / p>

这是一个非常基本的示例:

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 score变量。如果您坚持使用String值,那么您的compare()函数将不得不解析String中的数字并进行比较。