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版权协议,转载请附上原文出处链接和本声明。