Algorithm 这个排序问题需要一个算法!
012@TEST1 524@TEST2 ABC@TEST3 AB@TEST4 53@TEST5 @测试6 我想对以下数据进行排序,以便 最终输出: 根据“@”之前的数据排序 数字应该在alpha之前 @测试6 012@TEST1 53@TEST5 524@TEST2 AB@TEST4 ABC@TEST3 我想在java中实现这一点…请帮助我Algorithm 这个排序问题需要一个算法!,algorithm,Algorithm,012@TEST1 524@TEST2 ABC@TEST3 AB@TEST4 53@TEST5 @测试6 我想对以下数据进行排序,以便 最终输出: 根据“@”之前的数据排序 数字应该在alpha之前 @测试6 012@TEST1 53@TEST5 524@TEST2 AB@TEST4 ABC@TEST3 我想在java中实现这一点…请帮助我List stringList=Arrays.asList(新字符串[]{”012@TEST1", "524@TEST2","ABC@TEST3" ,"AB@
List stringList=Arrays.asList(新字符串[]{”012@TEST1", "524@TEST2","ABC@TEST3" ,"AB@TEST4" ,"53@TEST5“,“@TEST6”});
List<String> stringList = Arrays.asList(new String[]{"012@TEST1", "524@TEST2","ABC@TEST3" ,"AB@TEST4" ,"53@TEST5","@TEST6"});
Collections.sort(stringList,new Comparator<String>(){
public int compare(String s1,String s2){
String c1,c2;
if (s1.split("@").length >1){c1 = s1.split("@")[0]}else{c1 = ""}
if (s2.split("@").length >1){c2 = s2.split("@")[0]}else{c2 = ""}
return c1.compare(c2);
}
});
Collections.sort(stringList,newcomparator(){
公共整数比较(字符串s1,字符串s2){
字符串c1、c2;
如果(s1.split(“@”).length>1){c1=s1.split(“@”)[0]}否则{c1=”“}
如果(s2.split(“@”).length>1){c2=s2.split(“@”)[0]}否则{c2=”“}
返回c1。比较(c2);
}
});
或者类似的,只需调整比较方法它是一个常规的字母数字字典排序,但是
@
首先获得优先级,因为不幸的是在ASCII
表中,@
在和数字和大字母之间得到了堆栈。正如你在这里看到的:
或者,您可以将数据存储在
双值节点
中,该节点包含节点1
中@
左侧的数据,以及节点2
中右侧的数据,并在节点1上使用字典排序
我无法理解代码。请任何人提供其他方法或帮助我理解代码。谢谢您是否正在寻找伪代码算法或特定语言的实现(可能使用该平台提供的库)?这个例子看起来像是Java使用了平台库中的排序例程?