📅  最后修改于: 2023-12-03 15:01:33.408000             🧑  作者: Mango
在 Java 中,有时我们需要从用户那里输入密码,并希望这些密码不会在控制台上显示出来。为了实现这个功能,Java 提供了两种方式来接收密码输入:
java.io.Console
类java.util.Scanner
类java.io.Console
类提供了从控制台读取字符和密码的方法。以下是一个使用 java.io.Console
类接收密码输入的例子:
import java.io.Console;
public class PasswordInputExample {
public static void main(String[] args) {
Console console = System.console();
if (console == null) {
System.out.println("Console not available");
System.exit(1);
}
char[] passwordArray = console.readPassword("Enter your password: ");
String password = new String(passwordArray);
System.out.println("Password entered was: " + password);
}
}
在上面的例子中,我们使用 System.console()
方法获取 Console
对象。如果 System.console()
返回 null,则说明控制台不可用。Console
对象的 readPassword
方法接收一个字符串参数,用于提示用户输入密码。这个方法返回一个 char
数组,这个数组包含了用户输入的密码,但不会在控制台上显示出来。
使用 java.util.Scanner
类也可以接收密码输入。以下是一个使用 java.util.Scanner
类接收密码输入的例子:
import java.util.Scanner;
public class PasswordInputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter your password: ");
String password = scanner.nextLine();
System.out.println("Password entered was: " + password);
}
}
在上面的例子中,我们创建了一个 Scanner
对象,并从标准输入流中读取输入。我们使用 nextLine()
方法读取一行输入,并将输入作为密码。
注意:这种方式不会隐藏密码,因此不建议在需要隐藏密码的情况下使用。如果需要隐藏密码,请使用
java.io.Console
类。
使用以上两种方式都可以接收密码输入。如果需要隐藏密码,应该使用 java.io.Console
类。否则,使用 java.util.Scanner
类即可。
以上介绍了 Java 中如何包含密码输入,希望能对有需要的程序员有所帮助。