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

如何调整我的代码来正确排序字符串数组?

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

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

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

输出:

 Hello
 This
Example
Is
Sorting

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

http://stackoverflow.com/questions/12986386/why-does-my-sorting-loop-seem-to-append-an-element-where-it-shouldnt

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:java – 为什么我的排序循环似乎在它不应该附加一个元素?