所以我有一个字符串数组
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;
}
现在,此命令按它们在字符串中的顺序打印出它们,我正在努力对它们进行排序。我尝试了许多不同的方法,但不是我想要的。
答案 0 :(得分:1)
您可以将sort()
和reverse()
组合在一起,方法是将它们按升序排序并反转。
String [] scoreboard = {"AAA - 100", "BBB - 0", "CCC - 200"};
scoreboard = reverse(sort(scoreboard));
答案 1 :(得分:0)
如果我是您,我会考虑创建一个同时包含name
和score
变量的类,而不是使用您必须解析的字符串。
无论哪种方式,无论您使用的是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
中的数字并进行比较。