所以我需要知道有没有办法向jTextField控件显示此代码的最终密码,因为当我尝试时我遇到问题char无法转换为String。
import java.util.Random;
Random r = new Random();
String alphabet = "qwertyuiopasdfghjklzxcvbnm";
for (int i = 0; i < 50; i++) {
System.out.println(alphabet.charAt(r.nextInt(alphabet.length())));
}
答案 0 :(得分:1)
目前在您的代码中,您只是随机生成字符并打印它。您需要从所有这些生成的字符中形成String
,然后您可以将其设置为TextField
中的文本。
您可以StringBuilder
附加每个随机character
。
String alphabet = "qwertyuiopasdfghjklzxcvbnm";
StringBuilder password=new StringBuilder();
for (int i = 0; i < 50; i++) {
password.append(alphabet.charAt(r.nextInt(alphabet.length())));
}
String password_str=password.toString();
System.out.println(password_str);
假设您有一个JTextField
,那么您可以将password_str设置为其值。
JTextField password_field = new JTextField();
password_field.setText(password_str);
答案 1 :(得分:1)
Random r = new Random();
String alphabet = "qwertyuiopasdfghjklzxcvbnm";
StringBuilder buf = new StringBuilder();
for (int i = 0; i < 50; i++) {
buf.append(alphabet.charAt(r.nextInt(alphabet.length())));
}
jTextField.setText(buf.toString());
答案 2 :(得分:0)
如果您尝试使用正确的methdos提供安全的随机生成密码,请使用SecureRandom。请参阅this。我在英语中没有任何关于它的文章,但是如果你能继续使用一些翻译,请阅读this one以了解如何破解这样的算法。
编辑: