• 智能AI问答!更聪明、更完整、原创作!
  • 一款基于GPT的超级AI机器人,可以回答问题、聊天、创作、写文案!

Java语言编写一个程序从键盘输入10个字符,用两个数组或列表分别保存字符与数字,并按从小到大输出两个序列

发布于 2024-05-17 17:43:02

以下是一个Java程序示例,它从键盘输入10个字符,然后使用两个数组分别保存字符和对应的数字(假设字符是0-9的数字字符),并按从小到大的顺序输出两个序列。

import java.util.Arrays;
import java.util.InputMismatchException;
import java.util.Scanner;
import java.util.regex.Pattern;

public class CharAndDigitSort {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        char[] chars = new char[10];
        int[] numbers = new int[10];

        // 从键盘接收10个字符
        System.out.println("Please enter 10 characters:");
        for (int i = 0; i < 10; i++) {
            chars[i] = scanner.next().charAt(0);

            // 检查输入是否为单个字符
            if (!Pattern.matches(".[a-zA-Z0-9]", String.valueOf(chars[i]))) {
                System.out.println("Invalid input. Please enter single characters only.");
                i--; // 重新输入当前项
            }
        }

        // 将字符转换为对应的数字(如果字符是0-9)
        for (int i = 0; i < chars.length; i++) {
            if (Character.isDigit(chars[i])) {
                numbers[i] = Character.getNumericValue(chars[i]);
            } else {
                numbers[i] = -1; // 使用-1表示非数字字符
            }
        }

        // 复制数组以进行排序,因为Arrays.sort()会修改原始数组
        char[] sortedChars = Arrays.copyOf(chars, chars.length);
        int[] sortedNumbers = Arrays.copyOf(numbers, numbers.length);

        // 对字符数组进行排序
        Arrays.sort(sortedChars);

        // 对数字数组进行排序,排除非数字字符
        Arrays.sort(numbers);
        sortedNumbers = Arrays.stream(numbers).filter(n -> n != -1).toArray();

        System.out.println("Sorted characters: " + Arrays.toString(sortedChars));
        System.out.println("Sorted numbers: " + Arrays.toString(sortedNumbers));

        scanner.close();
    }
}

这个程序首先使用Scanner类从键盘接收10个字符,然后将其存储在chars数组中。接着,程序检查每个字符是否为数字,并将数字字符转换为相应的整数值,存储在numbers数组中。非数字字符在numbers数组中用-1表示。

然后,程序使用Arrays.sort()方法对两个数组进行排序。由于Arrays.sort()会修改原始数组,因此我们先复制了一份数组以保留原始数据。

最后,程序输出排序后的字符序列和数字序列。非数字字符在数字序列中被排除。

要运行这个程序,你需要确保你的开发环境中已经安装了Java,并使用命令行或者IDE来编译和运行上述代码。程序将提示用户输入10个字符,然后显示排序后的结果。

0 条评论

发布
问题

在线
客服