字符串排序器返回退出代码0而不是字符串

时间:2018-11-10 19:01:10

标签: java string user-input

我正在尝试制作一个字符串排序器,以接受用户输入并将其按字母顺序排列。我的代码如下:

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

3 个答案:

答案 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]);
        }
    }

}