java scanner输入字符串进行排序
时间: 2024-09-30 17:07:23 浏览: 32
在Java中,如果你想通过`Scanner`类获取用户输入的字符串并进行排序,可以按照以下步骤操作:
首先,创建一个`Scanner`对象以读取用户的输入:
```java
import java.util.Scanner;
import java.util.Arrays;
public class StringSortExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一些逗号分隔的字符串进行排序:");
}
}
```
然后,提示用户输入字符串,并使用`nextLine()`方法获取整个行的内容,之后分割成字符串数组,假设我们用逗号作为分隔符:
```java
String input = scanner.nextLine();
String[] stringArray = input.split(",");
```
接着对这个字符串数组进行排序。由于默认的排序方法会将字符串视为字符序列而不是字典序,我们可以先转换为整数数组(如果字符串代表数字),或者自定义一个比较器根据需要进行排序。这里以升序为例,使用`Arrays.sort()`函数:
```java
if (stringArray.length > 0) {
// 如果字符串可以转化为整数,例如数字
int[] numbers = Arrays.stream(stringArray)
.mapToInt(Integer::parseInt)
.toArray();
// 或者如果你需要基于其他规则自定义排序
// String[] sortedStrings = Arrays.copyOf(stringArray, stringArray.length);
// Arrays.sort(sortedStrings, Comparator.comparing(MyCustomComparator.class));
// 排序后的结果
Arrays.sort(numbers); // 对数字数组排序
// 再将结果转回字符串数组
stringArray = Arrays.stream(numbers)
.mapToObj(String::valueOf)
.toArray(String[]::new);
// 输出排序后的字符串
System.out.println("排序后的字符串为:");
for (String str : stringArray) {
System.out.print(str + ", ");
}
}
```
最后别忘了关闭`Scanner`对象:
```java
scanner.close();
```
阅读全文