String类:main方法中的String数组

main方法中的String数组

1、main方法上面的“String[] args ”有什么用?

JVM负责调用main方法的时候,会自动传一个String数组过来

public class mainTest {
	//这个方法程序员负责写出来,JVM负责调用。JVM调用的时候一定会传一个String数组过来
    public static void main(String[] args){
    	//JVM默认传递过来的这个数组对象的长度默认为0
    	//通过测试得出:args不是null
        System.out.println("JVM给传递过来的String数组,他这个数组的长度是"+ args.length);
    }
}

输出结果:
在这里插入图片描述

2、那么数组什么时候里面会有值呢?

这个数组其实是留给用户的,用户可以在控制台上输入参数,这个参数自动会被转换成String[] args

例如这样运行程序:java ArrayTest abc def xyz

那么这个时候JVM会自动将abc def xyz 通过空格的方式进行分离,分离完成之后,自动放入到String[] args数组当中。所以main方法上面的String[] args数组主要是用来接收用户输入参数的

把abc def xyz转换成字符串数组:{“abc”," def", “xyz”}

3、main方法String参数的案例

模拟一个系统,假设这个系统要使用,必须输入用户名和密码。

public class Arraytest1 {
    //用户名和密码输入到String[] args数组当中
    public static void main(String[] args) {
        if (args.length != 2){
            System.out.println("使用该系统时请输入程序参数,参数包括用户名和密码信息,例如:zhangsan 123");
            return;
        }

        //程序执行到此处说明用户确实提供了用户名和密码
        //接下来应该判断用户名和密码
        //取出用户名
        String username = args[0];
        String password = args[1];

        //假设用户名是admin,密码是123的时候表示登录成功。其他一律失败
        //判断两个字符串是否相等,需要使用equals方法
        //if (username.equals("admin") && password.equals("123")){
        //这样编写是不可以避免空指针异常的
        //采取以下风格的代码,即使username和password都是null,也不会出现空指针异常
        if ("admin".equals(username) && "123".equals(password)){
            System.out.println("登录成功,欢迎" + username + "回来");
        }
        else{
            System.out.println("验证失败,用户名不存在或密码不正确!");
        }
    }
}

输出结果

1、登录成功
在这里插入图片描述
2、登录失败
在这里插入图片描述
在这里插入图片描述


版权声明:本文为qq2632246528原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。