用java中的比较器为每列排序2D数组
我创建了一个工作o表,用该表为2D数组排序。使用自定义比较器的排序方法
String[] array=new String[]{
"a b c",
"a",
"a b",
"a c"};
我希望输出也如下所示
{"a",
"a b",
"a b c",
"a c"}
比较器的比较方法如下所示
public int compare(String arg0, String arg1) {
String[] tempArray0 = arg0.split(" +");
String[] tempArray1 = arg1.split(" +");
if (!arg0.isEmpty() && !arg1.isEmpty())
{
return sortStrings(tempArray0[0], tempArray1[0]);
}
SortString方法如下所示
private int sortStrings(String arg0, String arg1) {
if (arg0.toLowerCase().compareTo(arg1) > 0) {
return 1;
} else if (arg0.toLowerCase().compareTo(arg1) < 0) {
return -1;
} else {
return 0;
}
}
如果只想按第一列排序,这个问题非常有效,但对我来说,有必要检查该列是否具有相同的值,它应该对下一列排序,以此类推
我知道,在这种情况下,我需要捕获IndexOutOfBounds异常,因为数组中的一个元素(后来被划分为2D数组)有不同大小的行
我遇到了一个问题,因为我不知道这里应该使用什么样的循环结构
# 1 楼答案
试试这个
应打印: