【发布时间】:2021-03-19 12:22:05
【问题描述】:
我正在编写一些将我的字符串按字母顺序组织的代码,但我意识到当一个单词大于其他所有单词时,它会将它放在前面。我如何让它被放在单词列表的后面?
public class SortingText {
public static void main(String[] args) {
int i,j;
String key;
String[] inputArray = {"Fourscore","and","seven","years","ago","our"};
System.out.println(Arrays.toString(inputArray));
for (j = 1; j < inputArray.length; j++) { //the condition has changed
key = inputArray[j];
i = j - 1;
while (i >= 0) {
if (key.compareTo(inputArray[i]) > 0) {//here too
break;
}
inputArray[i + 1] = inputArray[i];
i--;
}
inputArray[i + 1] = key;
System.out.println(Arrays.toString(inputArray));
}
System.out.println(Arrays.toString(inputArray));
}
}
【问题讨论】:
-
您的问题不在于字长,而在于您不区分大小写并且区分大写和非大写字母。大写字母在您的逻辑中首先排序。尝试将第一个单词更改为“fourscore”,您会发现尽管它很长,但它不会在开头排序
标签: java arrays insertion-sort compareto