学习-Java数组之二维字符数组之按字母序排序

本文指导如何在Java中对给定的二维字符数组进行字母降序排序,通过嵌套循环和条件判断实现元素交换,最后输出排序后的结果。
摘要由CSDN通过智能技术生成
任务描述

本关任务:对给定二维字符数组排序,并输出排序后的结果。

相关知识

为了完成本关任务,你需要掌握:什么是二维字符数组。

二维字符数组

二维字符数组的创建、初始化以及元素的引用与二维数值数组是一样的,唯一的区别在于,二维字符数组存储的是字符。他们的区别体现在创建数组的时候。

示例:创建二维数值数组和字符数组。

 
  1. // 创建一个用于存储整数的二维数值数组。
  2. int[][] arr=new int[6][3];
  3. // 创建一个用于存储字符的二维数值数组。
  4. char[][] chars = new char[6][3];
编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,对给定二维字符数组排序(把所有元素按照字母降序排序),并输出排序后的结果,输出二维数组时注意数组中的每行数字之间用空格分开,每行中最后一个数字后面也要有一个空格。

注意:不要改变数组的大小范围。

测试说明

平台将运行你编写的程序代码,若你的运行结果与预期输出一致,则通关。

预期输出:

 
  1. z v t s
  2. s r r q
  3. p o h g
  4. e d d a
    public class Transpose {
        public static void main(String[] args) {
            // 定义二维数组并初始化
            char[][] a = {{'d','v','g','r'},{'h','s','r','a'},{'q','e','t','z'},{'o','p','d','s'}};
            // 请在Begin-End间编写代码        
            /********** Begin **********/
            // 第一步:排序,从第一个元素开始,依次取每个元素与该元素之后的每个元素比较大小
            for (int i = 0; i < a.length; i++) {     // 二维数组的长度
                for (int j = 0; j < a[i].length; j++) {     // 每个一维数组的长度
                    int n = j + 1;
                    for (int m = i; m < a.length; m++) {     // 排序
                        for (; n < a[i].length; n++) {
                            if (a[i][j] < a[m][n]) {
                                char max = a[m][n];
                                a[m][n] = a[i][j];
                                a[i][j] = max;
                            }
                        }
                        n = 0;     // 此处是给n从第二个一维数组开始取0这个坐标
                    }
                }
            }
            // 第二步:输出排序后的数组
            for (int i = 0; i < a.length; i++) {
                for (int j = 0; j < a[i].length; j++) {
                    System.out.print(a[i][j] + " ");
                }
                System.out.println();
            }
            /********** End **********/
            }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值