全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java编程用指定字符打印菱形实例

学习Java 本身是一个挺枯燥的过程,说白了就是每天敲代码而已。但如果换一种思路,可以编写各种各样的程序,不仅加深对代码的理解,同时提高兴趣,这样十分有利于大家的学习。下面我们来看一个有趣的小实例。

如何实现用指定字符打印出一个菱形,代码如下。

import java.util.Scanner;
import java.util.regex.Matcher;
public class test01 {
private static int i;
private String ch;
public static void main(String[] args) {
	runTest();
	}
private void printBlank(int blank){//打空格
	for(int i=blank;i>=1;i--){
		System.out.print(" ");
	}
}
	private void printStar( int sum,String ch){ //打图形
		for(int i=sum;i>=1;i--){
			System.out.print(ch);
		}
	}
	private void printTab(){ //打回车
		System.out.println();
	}
	private void run(int level,String ch){//综合打
		if(ch.length()==1){
			for(i=1;i<=(level+1)/2;i++){
				if(i==1){
					printBlank((level+1)/2-i);
					printStar(1,ch);
					printTab();
				}else{
					printBlank((level+1)/2-i);
					printStar(1,ch);
					printBlank(((level+1)/2+i-1)-((level+1)/2-i)-2); //总元素为 层数+i-1,再减去打印的空格和*号数量.
					printStar(1,ch);
					printTab();
				}
			} for(i=(level+1)/2-1;i>=1;i--){
				if(i==1){
					printBlank((level+1)/2-i);
					printStar(1,ch);
					printTab();
				}else{
					printBlank((level+1)/2-i);
					printStar(1,ch);
					printBlank((level+1)/2+i-1-((level+1)/2-i)-2);
					printStar(1,ch);
					printTab();
				}
			}
		}else{
			for(i=1;i<=(level+1)/2;i++){
				if(i==1){
					printBlank((level+1)/2-i+ch.length()/2);
					printStar(1,ch);
					printTab();
				}else{
					printBlank((level+1)/2-i);
					printStar(1,ch);
					printBlank(((level+1)/2+i-1)-((level+1)/2-i)-2); //总元素为 层数+i-1,再减去打印的空格和*号数量.
					printStar(1,ch);
					printTab();
				}
			} for(i=(level+1)/2-1;i>=1;i--){
				if(i==1){
					printBlank((level+1)/2-i+ch.length()/2);
					printStar(1,ch);
					printTab();
				}else{
					printBlank((level+1)/2-i);
					printStar(1,ch);
					printBlank((level+1)/2+i-1-((level+1)/2-i)-2);
					printStar(1,ch);
					printTab();
				}
			}
		}
		}
	public static void runTest() { //判断条件
		Scanner s = new Scanner(System.in);
		try{
			System.out.println("请输入要打印的层数,只能输入大于等于3的奇数 :" );
			int level = s.nextInt();
			String str = String.valueOf(level);
			if(str.matches("[1-9]\\d*")&&Integer.parseInt(str)%2!=0&&Integer.parseInt(str)!=1){
				System.out.println("请输入要打印的形状:" );
				String ch = s.next();
				try{
					if(ch.matches("[^\u4e00-\u9fa5]+" )){
						new test01().run(level, ch);
					}else {
						throw new Exception();}
				}catch (Exception e) {
					System.out.println("输入有误!!!不能包含汉字字符,请重新输入");
					System.out.println("***********************************");
					runTest(); //递归
				}
			}else if(str.matches("[-9-0]+")){ //
				throw new Exception();
			}
		}catch (Exception e) {
			System.out.println(" 输入有误!!!只能输入大于等于3的奇数,请重新输入");
			System.out.println("***********************************");
			runTest(); //递归
		}
	}
	}

输出:

请输入要打印的层数,只能输入大于等于3的奇数 :
15
请输入要打印的形状:
(!2#qwe)
      (!2#qwe)
   (!2#qwe) (!2#qwe)
   (!2#qwe)  (!2#qwe)
  (!2#qwe)   (!2#qwe)
  (!2#qwe)    (!2#qwe)
 (!2#qwe)     (!2#qwe)
 (!2#qwe)      (!2#qwe)
(!2#qwe)       (!2#qwe)
 (!2#qwe)      (!2#qwe)
 (!2#qwe)     (!2#qwe)
  (!2#qwe)    (!2#qwe)
  (!2#qwe)   (!2#qwe)
   (!2#qwe)  (!2#qwe)
   (!2#qwe) (!2#qwe)
      (!2#qwe)

总结

以上就是本文关于用指定字符打印菱形的全部内容,希望对大家的编程学习有所帮助。谢谢大家对本站的支持!


# java  # 字符菱形  # 打印菱形  # java打印出菱形图案实例详解  # Java利用for循环打印菱形的实例教程  # java打印菱形及直角和等腰三角形的方法  # JAVA用for循环打印空心菱形  # 运用java以及循环打印菱形详细实例代码  # 请输入  # 递归  # 层数  # 是一个  # 重新输入  # 谢谢大家  # 说白了  # 如何实现  # 各种各样  # 换一种  # String  # ch  # static  # int  # void  # printBlank  # blank  # gt  # main  # args 


相关文章: 全景视频制作网站有哪些,全景图怎么做成网页?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  如何在建站主机中优化服务器配置?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  C++如何编写函数模板?(泛型编程入门)  制作国外网站的软件,国外有哪些比较优质的网站推荐?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  打鱼网站制作软件,波克捕鱼官方号怎么注册?  c++ stringstream用法详解_c++字符串与数字转换利器  香港服务器部署网站为何提示未备案?  大同网页,大同瑞慈医院官网?  如何快速搭建安全的FTP站点?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  常州企业网站制作公司,全国继续教育网怎么登录?  网站制作价目表怎么做,珍爱网婚介费用多少?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  PHP正则匹配日期和时间(时间戳转换)的实例代码  如何正确下载安装西数主机建站助手?  盘锦网站制作公司,盘锦大洼有多少5G网站?  建站主机选哪种环境更利于SEO优化?  南京网站制作费用,南京远驱官方网站?  宝塔面板创建网站无法访问?如何快速排查修复?  建站主机SSH密钥生成步骤及常见问题解答?  建站OpenVZ教程与优化策略:配置指南与性能提升  建站之星ASP如何实现CMS高效搭建与安全管理?  网站代码制作软件有哪些,如何生成自己网站的代码?  定制建站策划方案_专业建站与网站建设方案一站式指南  如何在IIS中新建站点并配置端口与IP地址?  如何通过FTP空间快速搭建安全高效网站?  制作公司内部网站有哪些,内网如何建网站?  如何通过二级域名建站提升品牌影响力?  如何在IIS中新建站点并配置端口与物理路径?  如何快速配置高效服务器建站软件?  如何用已有域名快速搭建网站?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  官网网站制作腾讯审核要多久,联想路由器newifi官网  昆明网站制作哪家好,昆明公租房申请网上登录入口?  建站之星好吗?新手能否轻松上手建站?  网站制作说明怎么写,简述网页设计的流程并说明原因?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  建站之星云端配置指南:模板选择与SEO优化一键生成  如何配置WinSCP新建站点的密钥验证步骤?  韩国服务器如何优化跨境访问实现高效连接?  建站之星3.0如何解决常见操作问题?  建站之星2.7模板快速切换与批量管理功能操作指南  高端云建站费用究竟需要多少预算?  如何基于云服务器快速搭建个人网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。