输入你要输入的字符串的个数。然后换行输入该组字符串。每个字符串以回车结束,每个字符串不多于一百个字符。 如果在输入过程中输入的一个字符串为“stop”,也结束输入。 然后将这输入的该组字符串按每个字符串的长度,由小到大排序,按排序结果输出字符串。如果存在多个字符串长度相同,则按照原始输入顺序输出。按照写一则Java代码
时间: 2024-03-07 07:48:53 浏览: 54
求一个字符串中字母的个数,以及一个字符串中数字的个数.md
5星 · 资源好评率100%
以下是Java代码实现:
```java
import java.util.*;
public class SortStringsByLength {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
List<String> list = new ArrayList<String>();
String input = "";
System.out.print("请输入字符串的个数:");
int n = scanner.nextInt();
scanner.nextLine(); // 读取换行符
System.out.println("请输入字符串,每个字符串以回车结束:");
for (int i = 0; i < n; i++) {
input = scanner.nextLine();
if (input.equals("stop")) {
break;
}
list.add(input);
}
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
int len1 = s1.length();
int len2 = s2.length();
if (len1 == len2) {
// 如果长度相等,按照原始输入顺序输出
return list.indexOf(s1) - list.indexOf(s2);
} else {
return len1 - len2;
}
}
});
System.out.println("按照字符串长度排序后的结果为:");
for (String str : list) {
System.out.println(str);
}
}
}
```
首先使用 `Scanner` 类从控制台读取输入的字符串个数。然后使用 `for` 循环读取每个字符串,并将其存储在一个 `List` 集合中。使用 `Collections` 类的 `sort` 方法对 `List` 集合进行排序,排序方式为先按照字符串长度从小到大排序,如果长度相等则按照原始输入顺序输出。最后按照排序结果输出字符串即可。
阅读全文