黑马程序员技术交流社区

标题: 键盘录入1-20数字,打印空心正方形 [打印本页]

作者: solomanlove    时间: 2016-1-9 15:04
标题: 键盘录入1-20数字,打印空心正方形
/*
键盘录入1-20数字,打印空心正方形
* * * * * * * * *
*                  *
*                 *
*                 *
*                 *
*                 *
*                 *
*                 *
* * * * * * * * *
1,先进行键盘录入变量
2,需要行循环和列循环
3,进行判断是否满足正方形的四条边.
*/
import java.util.Scanner;                                                                                                  //导包
class DaDiShu {
        public static void main (String[] args){
                Scanner sc = new Scanner(System.in);                                                                //创建键盘录入对象;
                System.out.println("请输入一个整数,范围是1-20之间");                               
                int num = sc.nextInt();                                                                                                //将键盘录入的整数赋值给num;
                for (int i = 1; i < num ;i++ ) {                                                                                       //行循环
                        for (int j = 1;j < num ;j++ ) {                                                                              //列循环
                                if (i == 1 || j == 1 || i == num - 1 || j == num - 1) {                              //判断是否是正方形的四条边
                                        System.out.print("* ");                                                                        //满足条件打印*
                                }else{
                                        System.out.print("  ");                                                                        //不满足条件打印空格
                                }
                        }
                        System.out.println();                                                                                        //进行换行
                }
        }
}


作者: 549208564    时间: 2016-1-9 15:14
楼主,怎么可以让空心中有文字,如:
*********
*           *
*  你好  *
*           *
*********
让这个文字在中间,不管有多少列,怎么做啊

作者: qxz394731688    时间: 2016-1-9 15:22
这个比较简单吧
作者: solomanlove    时间: 2016-1-9 15:39
本帖最后由 solomanlove 于 2016-1-9 15:41 编辑

if (i == 1 || j == 1 || i == num - 1 || j == num - 1) {                //判断是否是正方形的四条边
               System.out.print("* ");                                                                        //满足条件打印*
}else{
               //System.out.print("  ");                                                                        //不满足条件打印空格
                if (i == num/2 && j == num/2  ) {                                                    //判断中间位置
                        System.out.print("你");                                                            //输出"你",这里不能输出多个汉字,否则会正方形变形.
               }else{
                         System.out.print("  ");
               }
}


因本人能力有限,只能再其中添加一个汉字,如果添加多个汉字的话,就需要用到替换replaceAll还有其他知识


作者: solomanlove    时间: 2016-1-9 15:43
qxz394731688 发表于 2016-1-9 15:22
这个比较简单吧

高手,简单就请写段代码(主要在是里面有多个汉字),给菜鸟看看吧,让我们开开眼界.
作者: 一大把手    时间: 2016-1-9 15:43
很不错啊!
作者: 黑色皮肤的马    时间: 2016-1-9 23:20
import java.util.Scanner;

class KongXinZhengFangXing {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(true) {
            System.out.println("请输入整数:");
            int a = sc.nextInt();
            printSqurt(a);   
        }
    }

    public static void printSqurt(int m) {
        for(int x=0;x<m;x++) {
            if(x==0 || x==(m-1)) {
                for(int y=0;y<m;y++) {
                    System.out.print("* ");
                }
            }else {
                for(int y=0;y<m;y++) {
                    if(y==0||y==(m-1)) {
                        System.out.print("* ");
                    }
                    else {
                        System.out.print("  ");
                    }
                }
            }
            System.out.println();
        }   
    }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2