gpt4 book ai didi

java - 如何按特定数据段对数组进行排序?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:10:00 24 4
gpt4 key购买 nike

我有一个像这样的字符串数组:

String[] array = { "CC/2", "DDD/3", "AAAA/4", "B/1" };
Arrays.sort(array);
System.out.println(Arrays.toString(array));

当我执行这段代码时,我得到以下信息:

[AAAA/4, B/1, CC/2, DDD/3]

这是正确的,但是我想改为按编号值对其进行排序,以便得到以下结果:

[B/1, CC/2, DDD/3, AAAA/4]

我该怎么做?

最佳答案

你可以通过使用 Comparator<String> 来做到这一点

    /* You may found some shortcuts for this
but following code is easy to understand
*/
String[] array = { "CC/2", "DDD/3", "AAAA/4", "B/1"};
Arrays.sort(array, new Comparator<String>() {

public int compare(String o1, String o2) {
int i1,i2;
/*
You should add some checks like
1] null check
or
2] whether String contains / or not etc before going for further
code.
*/
/* Get Numbers from String To compare */
i1=Integer.valueOf(o1.split("/")[1]);
i2=Integer.valueOf(o2.split("/")[1]);
//May throw NumberFormatException so be careful with this

if(i1>i2)
return 1;
else if(i1<i2)
return -1;
else
return 0;
}
});
System.out.println(Arrays.toString(array));//Print array

关于java - 如何按特定数据段对数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25081433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com