我的程序要求输入一个数字,将其转换为二进制,然后加零,直到它是8个字符长,然后我需要它以星号打印出二进制是什么,空格应该是5且5个长IE:
零将是五个星号第一行;一个星号,三个空格,以及第二,第三和第四行的一个星号;然后在第五行再加上五个星号。
一个将是两个空格,并且所有五行都带有一个星号。
我一辈子都想不通这个,我不能在这个项目中使用数组。
这是为了做作业,我不是在要求别人为我编写代码,而只是提出一些有关如何做的建议。我没主意了。先感谢您
下面是我的代码:

    public static void getChara(String o){
      char e=0;
      int g=0;
      int h=0;
      for (g=0;g<5;g++){
          for (h=0;h<8;h++){
            e = o.charAt(h);
             if ((g == 1) || (g == 5)){
            if(h == 0)
                printDigit(g,h);
            else if(h==1)
                printDigit(g,h);}
        else {
            if(h == 0)
                printDigit(g,h);
            else if(h==1)
                printDigit(g,h);   }
         }
      }
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    System.out.println();
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    System.out.println();
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    System.out.println();
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    System.out.println();
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    System.out.println();

    }

    public static void printDigit(int g, int h){

        if ((g == 1) || (g == 5)){
            if(h == 0)
                System.out.print("***** ");
            else if(h==1)
                System.out.print("  *   ");}
        else {
            if(h == 0)
                System.out.print("*   * ");
            else if(h==1)
                System.out.print("  *   ");   }

    }

最佳答案

您对getChara的考虑有点过头了。 printDigit完成所有打印星形图案的工作,因此您无需在getChara中重复该逻辑。 getChara所需要做的就是告诉printDigit以正确的顺序输出正确数字的正确行,如下所示:

public static void getChara(String o){
    for (int row=0; row < 5; ++row){
        for (int i=0; i < o.length(); ++i){
            int digit = o.charAt(i) == '0' ? 0 : 1;
            printDigit(row, digit);
        }
        System.out.println();
    }
}

关于java - 如何使用两种方法打印星号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58360074/

10-13 09:47