L666861 2022-12-08 17:31 采纳率: 75%
浏览 66
已结题

Java的类和静态方法

定义一个名为Q1的类,包含一个名为diagonals的类/静态方法。
该方法应该返回一个包含模式的String,并接受2个int和2个char参数。
第一个int是模式的高度和宽度,第二个int是模式中对角线之间的间距大小,char参数是应该在模式中使用的字符。
该方法应该返回一个字符串,表示使用第一个char参数显示的一些对角线,形状的其余部分用第二个char参数填充。
形状的主对角线应该从左上到右下,并且对角线之间的字符数应该是恒定的,这是由第二个int参数决定的。
在以下任何情况下都应该抛出运行时异常(类IllegalArgumentException是一个很好的使用,但如果你愿意,你可以使用另一个或定义自己的):1. char参数是相等的
2. 尺寸不在7-31(含)范围内
3. 对角线之间的间距必须至少为1
下面是使用所示参数调用方法时代码返回的字符串示例。

img

  • 写回答

2条回答 默认 最新

  • ShowMeAI 2022-12-08 18:45
    关注

    以下为Java语言实现示例代码和解释,望采纳:

    public class Q1 {
        public static String diagonals(int size, int gap, char fill, char diagonal) {
            if (fill == diagonal) {
                throw new IllegalArgumentException("Fill character must be different from diagonal character.");
            }
            if (size < 7 || size > 31) {
                throw new IllegalArgumentException("Size must be in the range of 7-31 (inclusive).");
            }
            if (gap < 1) {
                throw new IllegalArgumentException("Gap must be at least 1.");
            }
    
            StringBuilder sb = new StringBuilder();
            for (int row = 0; row < size; row++) {
                for (int col = 0; col < size; col++) {
                    if (row == col || row + col == size - 1) {
                        // 对角线位置
                        sb.append(diagonal);
                    } else if (col >= row - gap && col <= row + gap && col <= size - row - 1 + gap && col >= size - row - 1 - gap) {
                        // 对角线附近
                        sb.append(diagonal);
                    } else {
                        // 其余位置
                        sb.append(fill);
                    }
                }
                sb.append("\n");
            }
            return sb.toString();
        }
    }
    

    在上面的代码中,Q1类包含一个静态方法diagonals。该方法接收四个参数:图形的尺寸、对角线之间的间距、图形的填充字符和对角线字符。


    在方法体中,我们会判断两个字符是否相同,尺寸是否在7-31之间,以及间距是否至少为1。如果发现不符合条件,则抛出一个IllegalArgumentException。


    接下来,我们使用双重循环遍历图形的每个位置,并根据位置是否在对角线上或附近,将不同的字符填充到对应的位置。最后,我们将生成的图形返回。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月16日
  • 已采纳回答 12月8日
  • 赞助了问题酬金15元 12月8日
  • 赞助了问题酬金15元 12月8日
  • 展开全部

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来