首页 > 解决方案 > 字符串排序器返回退出代码 0 而不是字符串

问题描述

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

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 来完成这个任务

标签: javastringuser-input

解决方案


您可以使用这样的自定义排序,

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

}

推荐阅读