java - 字符串排序器返回退出代码 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 来完成这个任务
解决方案
您可以使用这样的自定义排序,
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]);
}
}
}
推荐阅读
- arrays - 在具有固定最后一行的单元格范围内循环
- flutter - Flutter SharedPreferences Null 检查运算符用于空值
- javascript - 将 document.body.style.backgroundColor 分配给变量
- javascript - 没有为不存在的用户获取 404 补丁
- google-cloud-dataproc - 如何增加 Dataproc 中的最大并发作业数?
- java - 跨 JPA 和 JDBC 的 Spring @Transactional
- kubernetes - Deployment 控制器可以控制不是由它创建的 Pod 吗?
- javascript - 在 React 测试用例中使用 require 语法导入 VS Code
- node.js - 在 Node-red 中如何关闭 tcp 会话
- firebase - 如何将我的 Firebase 数据库连接到 Google 脚本?