有如下数字字符串: 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 22:46:32 浏览: 148
好的,我可以为您提供如下示例代码来解决这个问题:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
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 类将 str 中的数字转换并生成到 ArrayList 中
Scanner scanner = new Scanner(str);
ArrayList<Integer> numbers = new ArrayList<>();
while (scanner.hasNextInt()) {
int number = scanner.nextInt();
numbers.add(number);
}
// 采用匿名类实现排序(从大到小),并输出
Collections.sort(numbers, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
System.out.println("从大到小排序结果为:" + numbers);
}
}
```
在上面的代码中,我们首先定义了字符串 `str`,其中数字字符之间用空格分割。然后,我们使用 `Scanner` 类将 `str` 中的数字转换并生成到 `ArrayList` 对象 `numbers` 中。
接下来,我们采用匿名类实现排序(从大到小),并输出结果。具体来说,我们使用 `Collections.sort()` 方法对 `numbers` 集合进行排序,排序时使用一个匿名类实现了 `Comparator` 接口,该匿名类重写了 `compare()` 方法,实现了从大到小排序。
最后,我们使用 `System.out.println()` 方法输出排序结果。
希望这个示例代码能够帮助您解决问题。如果您有任何疑问,请随时问我。
阅读全文