Java编写程序,输入任意个整数,数字与数字之间用空格、逗号或者分号分隔,输入完成后敲击回车,程序自动将用户输入的数字从小到大排列并显示到屏幕上。尽可能使用面向对象的编程方法,将上述排序功能封装在一个专门的类中,以实现该功能的重复利用。
时间: 2023-06-04 20:07:01 浏览: 88
这是一个技术问题,可以直接回答。以下是Java代码实现:
import java.util.Arrays;
import java.util.Scanner;
public class NumberSorter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入多个数字(数字之间使用空格、逗号或分号分隔):");
String input = scanner.nextLine();
String[] strNumbers = input.split("[,;\\s]+");
int[] numbers = new int[strNumbers.length];
for (int i = 0; i < strNumbers.length; i++) {
numbers[i] = Integer.parseInt(strNumbers[i]);
}
Arrays.sort(numbers);
System.out.println("排序结果:");
for (int number : numbers) {
System.out.print(number + " ");
}
}
}
同时,我们可以将排序功能封装成一个类,以便在其他地方重复利用:
import java.util.Arrays;
public class NumberSorter {
private int[] numbers;
public NumberSorter(String[] strNumbers) {
this.numbers = new int[strNumbers.length];
for (int i = 0; i < strNumbers.length; i++) {
this.numbers[i] = Integer.parseInt(strNumbers[i]);
}
}
public void sort() {
Arrays.sort(this.numbers);
}
public int[] getNumbers() {
return this.numbers;
}
}
在主程序中,可以这样使用:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入多个数字(数字之间使用空格、逗号或分号分隔):");
String input = scanner.nextLine();
String[] strNumbers = input.split("[,;\\s]+");
NumberSorter sorter = new NumberSorter(strNumbers);
sorter.sort();
int[] numbers = sorter.getNumbers();
System.out.println("排序结果:");
for (int number : numbers) {
System.out.print(number + " ");
}
}
}
这样可以将排序功能与输入输出分离,让代码更加清晰易懂。
阅读全文