java - 字符串数组的合并和排序

标签 java arrays

我正在尝试完成作业,但我不知道如何完成。 我的代码中有 3 个数组,每个数组都有名字和姓氏(姓氏位于数组中第一个名字之前)。

我应该使用哪个函数来确定一个字符串是否在另一个字符串之前? 我在考虑比较,但不太确定如何实现。

这是我到目前为止的代码:

public static void main(String[] args)
{

    String[] section1 = {"Curie, Marie", "Feynman, Richard", "Germain, Sophie",
            "Turing, Alan"};
    String[] section2 = {"Bolt, Usain", "Graf, Steffi","Hamm, Mia"};
    String[] section3 = {"Bach, Johann Sebastian", "Beethoven, Ludwig van",
            "Mozart, Wolfgang Amadeus", "Schumann, Clara"};

    String[] merged = mergeSortedArrays(section1, section2);
    String[] merged = mergeSortedArrays(merged, section3);

    for(int i = 0; i < merged.length(); i ++)
        System.out.print(merged[i]);



    }


 //Do not change the method header
public static String[] mergeSortedArrays(String[] a1, String[] a2)
{

    int i = 0, j = 0, k = 0;
    while(a1[i] != null && a2[j] != null)
    {
        if(a1[i] "comes before" a2[j])
        {
            merged[k] = a1[i];
            i++;
            else {
                merged[k] = a2[j];
                j++;
            }
            k++;
        }
        return merged;



    }

}

最佳答案

要比较两个字符串,请使用

if(a1[i].compareTo(a2[j]) <= 0)  {   //Means: a1[i] <= a2[j]     
   System.out.println("a1[" + i + "] (" + a1[i] + ") is less-than-or-equal-to a2[" + i + "] (" + a2[i] + "));
}

或者

if(a1[i].compareTo(a2[j]) < 0)  {   //Means: a1[i] < a2[j]     
   System.out.println("a1[" + i + "] (" + a1[i] + ") is less than a2[" + i + "] (" + a2[i] + "));
}

我推荐像我所做的那样的注释,因为我发现查看 compareTo 函数非常令人困惑。我必须不断提醒自己,该运算符有点像 compareTo 的“就位”。我总是这样评论。

我注意到您的代码存在一些与字符串比较无关的严重问题:

  • 您的 else 前面没有右大括号。
  • 对象 merged 从未在 mergeSortedArrays 函数中声明
  • 您的 while 循环需要检查给定数组的数组索引是否太高,否则您将收到 ArrayIndexOutOfBoundsException
  • anArray.length() 不正确。删除括号。

关于java - 字符串数组的合并和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22109369/

相关文章:

添加到 ArrayList 的 Java 对象未显示

使用集合删除方法时不会出现 Java 并发修改异常

C++:获取数组中char元素的索引

java - Java 中的 PPMD​​ 压缩?

java - 检测 Java 类以创建反向 Java 调试器的最佳方法是什么?

java - 如何在 Intellij IDEA 中使用结构搜索命令查找已弃用的 java 类的用法?

java - 在 Java 中以简短的方式在数组中查找整数

php - 如何组合 3 个数组

python - 获取轴上 numpy.argmax 元素的索引

c - 数组打印少一个数字