zoukankan      html  css  js  c++  java
  • 蓝桥杯-格子中输出-java

    /* (程序头部注释开始)

    * 程序的版权和版本声明部分

    * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 

    * All rights reserved.

    * 文件名称: 蓝桥杯赛题                           

    * 作    者:   彭俊豪               

    * 完成日期:   2016   年 04月 01日

    * 版 本 号:      001   

    * 对任务及求解方法的描述部分

    * 问题描述:

    stringInGrid方法会在一个指定大小的格子中打印指定的字符串。
    要求字符串在水平、垂直两个方向上都居中。
    如果字符串太长,就截断。
    如果不能恰好居中,可以稍稍偏左或者偏上一点。

    下面的程序实现这个逻辑,请填写划线部分缺少的代码。

    public static void stringInGrid(int width, int height, String s)
    {
    if(s.length()>width-2) s = s.substring(0,width-2);
    System.out.print("+");
    for(int i=0;i<width-2;i++) System.out.print("-");
    System.out.println("+");

    for(int k=1; k<(height-1)/2;k++){
    System.out.print("|");
    for(int i=0;i<width-2;i++) System.out.print(" ");
    System.out.println("|");
    }

    System.out.print("|");

    String ff = _______________________________________________________; //填空
    System.out.print(String.format(ff,"",s,""));

    System.out.println("|");

    for(int k=(height-1)/2+1; k<height-1; k++){
    System.out.print("|");
    for(int i=0;i<width-2;i++) System.out.print(" ");
    System.out.println("|");
    }

    System.out.print("+");
    for(int i=0;i<width-2;i++) System.out.print("-");
    System.out.println("+");
    }

    * 输入描述:  

     * 程序输出:  对于题目中数据,应该输出:
    +------------------+
    |            |
    |       abcd1234      |
    |                           |
    |                           |
    +------------------+

    * 程序头部的注释结束

    */

    上代码:

    public class Main {

      public static void main(String[] args) {
        stringInGrid(20, 6, "abcd1234");

      }

      public static void stringInGrid(int width, int height, String s)
      {
        if(s.length()>width-2) s = s.substring(0,width-2);
          System.out.print("+");
        for(int i=0;i<width-2;i++) System.out.print("-");
          System.out.println("+");

        for(int k=1; k<(height-1)/2;k++){
          System.out.print("|");
        for(int i=0;i<width-2;i++) System.out.print(" ");
          System.out.println("|");
        }

        System.out.print("|");

        String ff = "%1$"+(width-s.length()-2)/2+"s%2$s%3$"+(width-s.length()-2)/2+"s"; //填空
        System.out.print(String.format(ff,"",s,""));

        System.out.println("|");

        for(int k=(height-1)/2+1; k<height-1; k++){
          System.out.print("|");
        for(int i=0;i<width-2;i++) System.out.print(" ");
          System.out.println("|");
        }

        System.out.print("+");
        for(int i=0;i<width-2;i++) System.out.print("-");
          System.out.println("+");
        }

    }

  • 相关阅读:
    Codeforces 120F Spiders
    Codeforces 509C Sums of Digits
    Topcoder SRM 497 DIV2 1000 MakeSquare
    codeforces 22B Bargaining Table
    Codeforces 487B Strip
    Codeforces 132C Logo Turtle
    关闭窗口对话框提示 messagedlg应用和showmodal的使用
    如何让窗口显示在电脑屏幕中间
    delphi项目程序输出编译成应用程序文件
    delphi程序项目创建和保存
  • 原文地址:https://www.cnblogs.com/pengjunhao/p/6674015.html
Copyright © 2011-2022 走看看