学习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小时内与您取得联系。