蓝桥杯-格子中输出-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("+");	
	    }
}
蓝桥杯-格子中输出-java的更多相关文章
- java实现第六届蓝桥杯格子中输出
		格子中输出 格子中输出 stringInGrid方法会在一个指定大小的格子中打印指定的字符串. 要求字符串在水平.垂直两个方向上都居中. 如果字符串太长,就截断. 如果不能恰好居中,可以稍稍偏左或者偏 ... 
- 格子中输出|2015年蓝桥杯B组题解析第四题-fishers
		StringInGrid函数会在一个指定大小的格子中打印指定的字符串. 要求字符串在水平.垂直两个方向上都居中. 如果字符串太长,就截断. 如果不能恰好居中,可以稍稍偏左或者偏上一点. 下面的程序实现 ... 
- java算法  蓝桥杯 格子位置
		问题描述 输入三个自然数N,i,j (1<=i<=N,1<=j<=N),输出在一个N*N格的棋盘中,与格子(i,j)同行.同列.同一对角线的所有格子的位置. 输入格式 输入共三 ... 
- java实现第五届蓝桥杯格子放鸡蛋
		格子放鸡蛋 X星球的母鸡很聪明.它们把蛋直接下在一个 N * N 的格子中,每个格子只能容纳一枚鸡蛋.它们有个习惯,要求:每行,每列,以及每个斜线上都不能有超过2个鸡蛋.如果要满足这些要求,母鸡最多能 ... 
- 算法笔记_052:蓝桥杯练习Multithreading(Java)
		目录 1 问题描述 2 解决方案 1 问题描述 问题描述 现有如下一个算法: repeat ni times yi := y y := yi+1 end repeat 令n[1]为你需要算加法的第 ... 
- 蓝桥杯-兰顿蚂蚁-java
		/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ... 
- 蓝桥杯-打印十字图-java
		/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ... 
- 蓝桥杯-手机尾号-java
		/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ... 
- 蓝桥杯试题集【Java】
		一.Fibonacci数列 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. ... 
随机推荐
- TextView字体大小及颜色设置
			TextView设置文字大小及颜色: 1.1)通过xml配置 <TextView android:layout_width="match_parent" a ... 
- 获取 metadata 的完整例子 - 每天5分钟玩转 OpenStack(166)
			我们将通过实验详细分析 instance 从 nova-api-metadata 获取信息的完整过程. 环境介绍 1. 一个 all-in-one 环境(多节点类似). 2. 已创建 neutron ... 
- ThoughtWorks 一道面试题及解法
			前两天面试ThoughtWorks,有一道家庭作业题,题目如下: Problem Two: Conference Track Management You are planning a big pro ... 
- es6中的let声明变量与es5中的var声明变量的区别,局部变量与全局变量
			自己通过看typescript官方文档里的let声明,与阮一峰老师翻译的的es6学习文档,总结以下三点 1.var声明可以多次重复声明同一个变量,let不行 2.let变量只在块级作用域里面有效果,v ... 
- Struts2之Validator
			Struts2中提供了数据校验验证数据例如验证邮件.数字等.验证方式有3种:一是通过validate()方法,二是通过Xml,三是使用注解方式. 一.初始化 首先定义一个User类 package c ... 
- java开发中的链式思维  ——  设计一个链式过滤器
			概述 最近在弄阿里云的sls日志服务,该服务提供了一个搜索接口,可根据各种运算.逻辑等表达式搜出想要的内容.具体语法可见https://help.aliyun.com/document_detail/ ... 
- 初窥DB2之insert语句
			第一种写法 INSERT INTO PERSVALUES (12, 'Harris', 20, 'Sales', 5, 18000, 1000, '1950-1-1') 第二种写法 INSERT IN ... 
- P2物理引擎中文文档
			P2物理引擎中文文档地址:https://github.com/schteppe/p2.js/wiki/Chinese-wiki-%E4%B8%AD%E6%96%87%E7%BB%B4%E5%9F%B ... 
- Java并发编程:线程的基本状态
			一.线程的基本状态 线程基本上有5种状态,分别是:NEW.Runnable.Running.Blocked.Dead. 1)新建状态(New) 当线程对象对创建后,即进入了新建状态,如:Thread ... 
- 3.Redis常用命令:String
			字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型的Value ... 
