Java编程用指定字符打印菱形实例
学习Java本身是一个挺枯燥的过程,说白了就是每天敲代码而已。但如果换一种思路,可以编写各种各样的程序,不仅加深对代码的理解,同时提高兴趣,这样十分有利于大家的学习。下面我们来看一个有趣的小实例。
如何实现用指定字符打印出一个菱形,代码如下。
importjava.util.Scanner; importjava.util.regex.Matcher; publicclasstest01{ privatestaticinti; privateStringch; publicstaticvoidmain(String[]args){ runTest(); } privatevoidprintBlank(intblank){//打空格 for(inti=blank;i>=1;i--){ System.out.print(""); } } privatevoidprintStar(intsum,Stringch){//打图形 for(inti=sum;i>=1;i--){ System.out.print(ch); } } privatevoidprintTab(){//打回车 System.out.println(); } privatevoidrun(intlevel,Stringch){//综合打 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(); } } } } publicstaticvoidrunTest(){//判断条件 Scanners=newScanner(System.in); try{ System.out.println("请输入要打印的层数,只能输入大于等于3的奇数:"); intlevel=s.nextInt(); Stringstr=String.valueOf(level); if(str.matches("[1-9]\\d*")&&Integer.parseInt(str)%2!=0&&Integer.parseInt(str)!=1){ System.out.println("请输入要打印的形状:"); Stringch=s.next(); try{ if(ch.matches("[^\u4e00-\u9fa5]+")){ newtest01().run(level,ch); }else{ thrownewException();} }catch(Exceptione){ System.out.println("输入有误!!!不能包含汉字字符,请重新输入"); System.out.println("***********************************"); runTest();//递归 } }elseif(str.matches("[-9-0]+")){// thrownewException(); } }catch(Exceptione){ 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)
总结
以上就是本文关于用指定字符打印菱形的全部内容,希望对大家的编程学习有所帮助。谢谢大家对本站的支持!