一尘不染

为什么我的排序循环似乎将元素添加在不应添加的位置?

java

我正在尝试使用排序字符串数组compareTo()。这是我的代码:

static String Array[] = {" Hello ", " This ", "is ", "Sorting ", "Example"};
String temp;

public static void main(String[] args)
{

   for (int j=0; j<Array.length;j++)
   {
       for (int i=j+1 ; i<Array.length; i++)
       {
           if (Array[i].compareTo(Array[j])<0)
           {
               String temp = Array[j];
               Array[j] = Array[i];
               Array[i] = temp;
           }
       }
       System.out.print(Array[j]);
   }
}

现在的输出是:

Hello  This Example Sorting is

我得到的是结果,但不是我想得到的结果,它们是:

Hello This Example Is Sorting

如何调整代码以正确地对字符串数组进行排序?


阅读 243

收藏
2020-03-22

共1个答案

一尘不染

你的输出是正确的。开头用“ Hello”和“ This”的白色字符表示。

另一个问题是你的方法。使用Arrays.sort()方法:

String[] strings = { " Hello ", " This ", "Is ", "Sorting ", "Example" };
Arrays.sort(strings);

输出:

 Hello
 This
Example
Is
Sorting

这里数组“ is”的第三个元素应该是“ Is”,否则它将在排序后排在最后。因为sort方法在内部使用ASCII值对元素进行排序。

2020-03-22