【发布时间】:2015-04-12 22:12:34
【问题描述】:
我正在尝试创建一个程序,该程序接受用户输入并在使用compareToString 操作(不是array.sort)时按字母顺序对其进行排序,并在最后打印最终排序的数组。我已经解决了这个问题的大部分内容,但是一旦我使用排序功能就迷失了。有人对我如何完成SortInsert 方法有任何想法吗?
import java.util.*;
public class SortAsInserted {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int array_size = GetArraySize();
String[] myArray = new String[array_size];
for (int i = 0; i < array_size; i++){
String nextString = GetNextString();
String[] sortedArray = SortInsert(nextString, myArray);
}
PrintArray(sortedArray);
}
input.close();
}
}
public static String[] SortInsert(String nextString, String[] myArray){
for(int i = 0; i < myArray.length;)
if (nextString.compareToIgnoreCase(myArray[i]) > 0) {
i++;
//if current text is less(alphabetically) than position in Array
}else if (nextString.compareToIgnoreCase(myArray[i]) < 0){
}
}
public static int GetArraySize(){
Scanner input = new Scanner(System.in);
System.out.print("How many items are you entering?: ");
int items_in_array = input.nextInt();
return items_in_array;
}
public static void PrintArray(String[] x) {
for (int i = 0; i < x.length; i++){
System.out.print(x[i]);
}
}
public static String GetNextString(){
Scanner input = new Scanner(System.in);
System.out.println("Enter the next string: ");
String next_string = input.nextLine();
return next_string;
}
}
【问题讨论】:
-
为什么要边走边排序?最后排序一次意味着您不必每次都移动所有后面的字符串,您甚至可以就地进行排序。如果您确实需要始终对其进行排序,则应使用链表或其他不需要为插入移动所有内容的数据结构。
-
这是我正在上的一门课的作业。我宁愿不这样做,因为它既麻烦又是要求的一部分。
标签: java arrays string compareto