• 命令行参数


    命令行参数

    我们再回到Hello World程序:

    public class HelloWorld {
     public static void main(String[] args){
      System.out.println("Hello World!");
      }
    }
    

    老师要求理解public static void main(String[] args),
    我上网学了有关解释:

    public static void main(String[] args)

    • public:权限修饰符,权限最大。

    • static:随着MianDemo类的加载而加载,消失而消失。

    • void: 没有返回值

    • main: 函数名,jvm识别的特殊函数名

    • (String[]args):定义了一个字符串数组参数

    测试程序CommandLine.java:

    public class CommandLine {
     public static void main(String [] args) {
       for(String arg : args){
           System.out.println(arg);
      }
     }
    }
    

    java CommandLine运行时,没有输出。

    我们java CommandLine 1 2 3运行时,输出如下图,此时 args[0]"1", args[1]"2", args[2]=="3",args.lenth == 3。
    运行结果图:

    如果在IDEA中传参数

      Run->Edit Configuration...
    

    学习中遇到的问题

    1.在学习当中遇到i的赋值问题,如下:

     public class Args {
     public static void main(String[] args) {
     for(int i = 1; i < args.length; i++) {
      System.out.print(args[i]);
           }
        }
     }
    

    在命令行中执行 :Java C D E F
    我将其分成四种情况的输出

    1.  CDEF   
    2.  DEF   
    3.  EF  
    4.  F 
    

    乍一看我就觉得应该是DEF,因为for循环从1开始,C是args[0],所以打印DEF
    运行之后打印的却是EF仔细想了一下,java C是执行程序,D才是args[0]

    于是我自己扩展了一下关于Java的命令行参数

    Java命令行的参数

    1、 什么是命令行的参数?

    如: java Test1 365 156 "China"
    注意:(以上Test1必须为主类,否则不能运行)

    2、命令行的参数由谁来接收?

    一个程序开始于对函数main()的调用。在这样做的时候,有两个参数被送给main(),其中的一个描述了命令行参数的个数,通常称为argc;另一个是命令行参数的数组,通常称为argv。(C语言中,标准的main函数就是这样的)

    命令行参数都是字符串,所以argv的类型是char* [argc+1]。该程序的名字也作为argv[0]传进来,

    所以argc的值至少是1。这个参数的表总以0结束,也就是说,argv[argc]==0。[1]

    3、在命令行给定参数时,应注意什么?

    命令行的参数以空格隔开。但是,若命令行的参数本身包含空格时,则该参数必须用一对双引号括起来。

    如: java Test1 365 156 China "Beijing of China"
    

    4、命令行中输入(表示乘法)的方法:若直接在命令行中输入(乘法),系统会处理成当前路径名的几个字符串,若要表示乘法,应该输入“ ”或“ * ”,由args取得该字符串后,再用trim()去掉两端空格即可,当然也可输入“#”,然后再想办法去掉前面的#即可,即只要不单独输入即可。

  • 相关阅读:
    wpf图片查看器,支持鼠标滚动缩放拖拽
    Python 3.x 学习笔记--杂
    Python 3.x 模块
    python 连接kafka
    Oracle问题
    Device Mapper Multipath(DM-Multipath)
    各种书籍
    Centos 6.x系统
    老男孩Python 3.x 讲义
    Python 3.x 学习笔记
  • 原文地址:https://www.cnblogs.com/lyx1996/p/6973954.html
Copyright © 2020-2023  润新知