栏目分类
在你的代码中添加命令行参数来读取用户名_admin_String_args
发布日期:2025-04-16 10:18    点击次数:128

在你的代码中添加命令行参数来读取用户名,可以通过 main 方法的参数 String[] args 来实现。这样,程序在启动时可以通过命令行传递用户名,而不需要用户手动输入。以下是修改后的代码示例:

修改后的代码

java

复制代码

import java.util.HashMap;

import java.util.Scanner;

public class ConsoleLoginSystemWithCommandLine {

private static HashMap<, String> userDatabase = new HashMap<>();

static {

userDatabase.put("admin", "123456");

展开剩余86%

userDatabase.put("user1", "password");

userDatabase.put("user2", "mypassword");

}

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

// 检查是否通过命令行参数提供了用户名

String usernameFromArgs = null;

if (args.length > 0) {

usernameFromArgs = args[0]; // 获取第一个命令行参数作为用户名

}

String username;

if (usernameFromArgs != null) {

System.out.println("通过命令行参数提供的用户名: " + usernameFromArgs);

username = usernameFromArgs;

} else {

// 如果没有提供命令行参数,则提示用户手动输入用户名

System.out.print("请输入用户名: ");

username = scanner.nextLine();

}

// 提示用户输入密码

System.out.print("请输入密码: ");

String password = scanner.nextLine();

// 验证用户信息

if (authenticate(username, password)) {

System.out.println("登录成功!欢迎 " + username + "!");

} else {

System.out.println("登录失败!用户名或密码错误。");

}

// 关闭扫描器

scanner.close();

}

private static boolean authenticate(String username, String password) {

return userDatabase.containsKey(username) && userDatabase.get(username).equals(password);

}

}

代码说明

命令行参数:

args 是 main 方法的参数,用于接收命令行传递的参数。

检查 args 的长度,如果长度大于 0,则使用第一个参数作为用户名。

优先使用命令行参数:

如果通过命令行参数提供了用户名,则直接使用该用户名,而不再提示用户输入。

如果没有提供命令行参数,则回退到手动输入模式。

运行方式:

手动输入模式:

复制代码

java ConsoleLoginSystemWithCommandLine

直接运行程序,通过控制台输入用户名和密码。

命令行模式:

复制代码

java ConsoleLoginSystemWithCommandLine admin

在命令行中提供用户名(如 admin),程序会直接使用该用户名进行验证。

示例运行

示例 1:手动输入用户名

复制代码

java ConsoleLoginSystemWithCommandLine

运行程序后,程序会提示输入密码:

复制代码

欢迎登录系统!

请输入密码:

123456

登录成功!欢迎 admin!

示例 2:通过命令行提供用户名

复制代码

java ConsoleLoginSystemWithCommandLine admin

运行程序后,程序会直接使用 admin 作为用户名:

复制代码

欢迎登录系统!

通过命令行参数提供的用户名: admin

请输入密码:

123456

登录成功!欢迎 admin!

注意事项

命令行参数的传递:

在运行程序时,需要在命令行中传递用户名。例如:

复制代码

java ConsoleLoginSystemWithCommandLine admin

如果不传递参数,程序会提示用户手动输入用户名。

安全性:

命令行参数可能会被其他用户通过进程查看工具看到,因此不建议在生产环境中通过命令行传递敏感信息(如密码)。

希望这个修改能够满足你的需求!如果有其他问题,欢迎继续提问。

发布于:内蒙古自治区

  • 上一篇:没有了
  • 下一篇:没有了