我正在尝试制作一个字符串排序器,以接受用户输入并将其按字母顺序排列。我的代码如下:
public class StringSorter {
public static void main(String[] argv) throws IOException {
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in), 1);
System.out.println("How many strings do you want to sort?");
int numStrings = Integer.parseInt(stdin.readLine());
System.out.println("Input Strings Here:");
String[] stringsToSort = new String[numStrings];
for (int i = 0; i < numStrings; i++) {
String s = stdin.readLine();
stringsToSort[i] = s;
}
int comparison = (stringsToSort[0].compareToIgnoreCase(stringsToSort[1]));
if (stringsToSort[0].compareToIgnoreCase(stringsToSort[1]) < 0) {
System.out.println("Alphabetical Order: " + Integer.toString(comparison));
}
}
}
如何使它打印字符串而不是“退出代码0”? 我忘了补充一点,我不能为此任务使用java.util.Arrays或java.util.Vector
答案 0 :(得分:0)
现在,您正在打印比较的结果而不是字符串,而只是对前两个字符串进行排序。
您首先调用Array.sort()
,然后打印数组。替换比较并打印为
Arrays.sort(stringsToSort);
for (String string : stringsToSort) {
System.out.println(string);
}
答案 1 :(得分:0)
如果第一个String按字母顺序小于第二个String,则代码将输出1,否则它将不执行任何操作并返回0退出代码。 如果要打印数组,则应在数组元素上使用for循环进行迭代,然后打印该元素。
要对数组进行排序,可以使用任何排序算法。选择排序最容易理解。以下是用于对String数组进行排序的链接。 http://web.cs.iastate.edu/~smkautz/cs227f12/examples/week11/SelectionSortExamples.java
答案 2 :(得分:0)
您可以为您的用户使用这样的自定义排序,
public class A {
public static void main(String[] args) throws IOException {
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in), 1);
System.out.println("How many strings do you want to sort?");
int numStrings = Integer.parseInt(stdin.readLine());
System.out.println("Input Strings Here:");
String[] stringsToSort = new String[numStrings];
for (int i = 0; i < numStrings; i++) {
String s = stdin.readLine();
stringsToSort[i] = s;
}
Arrays.sort(stringsToSort, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2);
}
});
for (int i = 0; i < stringsToSort.length; i++) {
System.out.println(stringsToSort[i]);
}
}
}