根据命令提示符的输入打印星标

时间:2014-11-04 16:55:45

标签: java loops command-prompt args

我已经指定了一个打印星星图案的项目。我们假设在CMD中给出一个数字并打印出一个模式。或至少我理解它。


以下是作业的内容:

  

从命令行获取数字输入并生成正确的数字   星数和行数。

示例:

C:\java Stars 3 

会产生,

*
**
***

到目前为止,这是我的代码:

public class Stars1
{
    public static void main(String[] args)
    {
         int len = args.length;

         if( len <= 0)
         {
             System.out.println(" ERROR: Please input a value of 1-5");
             System.exit(0);
         }  

        int j;
        for(int i = 0; i <= 4; i++)
        {
            for(j = 0; j <= i; j++)
                System.out.print("*");

            System.out.println("");


        }


    }
} 

我正在尝试制作模式:

*
**
***
****
*****

他向我们展示的示例代码使用args.length来回显通过命令提示符输入的内容。所以,如果我们输入C:\ java Echo I type, it types. 它将打印出I type, it types.

以下是他告诉我们的代码:

public class echo
{
    public static void sopl( String str )
    {
        System.out.println( "\t" + str );
    }

    public static void sop( String str )
    {
        System.out.print( str );
    }





    public static void main( String[] args )
    {
        int len = args.length;

        if( len == 0 )
        {
            sopl( "\n\tUsage: java echo <args:String[]>" );
            System.exit( 0 );
        }

        sop( "\n\t" );

        for( int i = 0; i < len; i++ ) sop( args[i] + " " );

        sop( "\n\t" );

        while( len > 0 ) sop( args[args.length - len--] + " " );

        sopl( "" );
    }

如何使用args.length生成模式?我可以轻松地生成模式而无需从命令行获取输入。

4 个答案:

答案 0 :(得分:1)

我能想到的唯一方法就是使用Integer.parseInt(String);我不确定它是否适用于args.length,除非将args.length设为你想要的长度。

答案 1 :(得分:1)

只是指出一些事情......

如果没有输入,我假设您正在更改4中的i <= 4以控制您正在打印的星数。

args.length获取String数组args[]的长度,使用C:\java Stars 3的{​​{1}}将为1

请注意他的示例代码如何使用args[i]

for( int i = 0; i < len; i++ )
{
    sop( args[i] + " " );
}

i是一个int,这就是他在args[]

中获得价值的方式

更多关于描述他的代码......

您致电C:\ java Echo I type, it types.

public static void main( String[] args ) //args["I", "type,", "it", "types."]
{
    int len = args.length; //len = 4; (see above comment)

    if( len == 0 ) //in case no arguments are entered
    {
        sopl( "\n\tUsage: java echo <args:String[]>" );
        System.exit( 0 );
    }

    sop( "\n\t" ); //print new line and tab

    for( int i = 0; i < len; i++ ) //start at 0, as long as i < 4, increment i after each loop
    {
        sop( args[i] + " " ); //print the arg: arg[0] = "I", arg[1] = "type,", etc..
    }

    sop( "\n\t" ); //print another new line and tab

    while( len > 0 ) sop( args[args.length - len--] + " " ); //same thing as for loop but going backwards and more confusing(just for the sake of using a while loop I assume). Changes the value of len

    sopl( "" ); //print tab
}

答案 2 :(得分:1)

public class Stars1
{
    public static void main(String[] args)
    {
         int len = args.length;

         if( len <= 0)
         {
             System.out.println(" ERROR: Please input a value of 1-5");
             System.exit(0);
         }  

        int j;
        for(int i = 0; i <=len; i++)
        {
            for(j = 0; j <= i; j++)
                System.out.print("*");

            System.out.println("");


        }


    }
} 

答案 3 :(得分:1)

public class Stars1
{
    public static void main(String[] args)
    {
System.out.println("Enter no of rows to be printed");

   int  row= Integer.parseInt(args[0]);

          int len = args.length;

         if( len <= 0)
         {
             System.out.println(" ERROR: Please input a value of 1-5");
             System.exit(0);
         }  

        int j;
        for(int i = 0; i <= row; i++)
        {
            for(j = 0; j <= i; j++)
                System.out.print("*");

            System.out.println("");


        }


    }
}