Java编程用指定字符打印菱形实例
发布时间 - 2026-01-11 03:12:55 点击率:次学习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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
成都网站制作公司哪家好,四川省职工服务网是做什么用?
网站制作免费,什么网站能看正片电影?
智能起名网站制作软件有哪些,制作logo的软件?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
如何用搬瓦工VPS快速搭建个人网站?
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
新三国志曹操传主线渭水交兵攻略
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
Laravel如何实现文件上传和存储?(本地与S3配置)
高端云建站费用究竟需要多少预算?
java ZXing生成二维码及条码实例分享
Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
北京专业网站制作设计师招聘,北京白云观官方网站?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
网站建设整体流程解析,建站其实很容易!
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
如何在橙子建站上传落地页?操作指南详解
音乐网站服务器如何优化API响应速度?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何在IIS7中新建站点?详细步骤解析
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
JavaScript如何实现类型判断_typeof和instanceof有什么区别
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
EditPlus中的正则表达式实战(6)
Laravel如何记录自定义日志?(Log频道配置)
微信小程序 scroll-view组件实现列表页实例代码
,在苏州找工作,上哪个网站比较好?
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
免费网站制作appp,免费制作app哪个平台好?
大同网页,大同瑞慈医院官网?
Laravel如何配置和使用缓存?(Redis代码示例)
手机软键盘弹出时影响布局的解决方法
中山网站制作网页,中山新生登记系统登记流程?
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
如何在云主机上快速搭建网站?
如何快速搭建支持数据库操作的智能建站平台?
MySQL查询结果复制到新表的方法(更新、插入)
LinuxCD持续部署教程_自动发布与回滚机制
如何获取免费开源的自助建站系统源码?
魔方云NAT建站如何实现端口转发?
5种Android数据存储方式汇总
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?

