编程题:编写一个java程序(注:所有代码写在一个文件里),要求如下: 有如下数字字符串: String str="12 34 32 22 32 33 53 42 4 34 33 22 11 23 43 3";数字字符之间用空格分割。 (1) 使用Scanner类将str中的数字转换并生成到集合ArrayList中; (2) 采用匿名类实现排序(从大到小),并输出。
时间: 2024-03-15 19:46:32 浏览: 108
编写一个程序,实现字符串大小写的转换并倒序输出
好的,以下是实现代码:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
public class NumberSort {
public static void main(String[] args) {
String str="12 34 32 22 32 33 53 42 4 34 33 22 11 23 43 3";
Scanner scanner = new Scanner(str);
ArrayList<Integer> list = new ArrayList<Integer>();
while (scanner.hasNextInt()) {
list.add(scanner.nextInt());
}
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
System.out.println(list);
}
}
```
代码思路:
1.定义一个字符串变量 str,并初始化为指定的数字字符串。
2.创建 Scanner 对象 scanner,并将字符串 str 作为其参数。
3.定义一个 ArrayList 集合 list,用于存储从字符串中读取到的数字。
4.使用 while 循环和 hasNextInt() 方法从字符串中读取数字,并添加到集合 list 中。
5.使用 Collections.sort() 方法对集合 list 进行排序,排序方式为从大到小。
6.使用匿名类实现 Comparator 接口的 compare() 方法来定义排序方式。
7.最后输出排序后的集合 list。
阅读全文