您的位置:首页 > 编程语言 > Java开发

蓝桥杯-格子中输出-java

2017-04-06 16:16 519 查看
/* (程序头部注释开始)

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

* 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("+");
    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: