这个功能非常简单,我无法弄清楚出了什么问题。
private String genRandKey() {
rnd.setSeed(datetime.getTime());
String keyset = "abcdefghijklmABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"Ł$%^&*()_+-=[]{}:@~;'#<>?|\\,./";
String key = new String();
for (int i = 0; i < 9; i++) {
key.concat(String.valueOf(keyset.charAt(rnd.nextInt(keyset.length() - 1))));
}
return key;
}
它最终会返回一个空字符串。
答案 0 :(得分:3)
concat
返回一个新字符串,它不能修改原始字符串,它们是不可变的,我建议使用StringBuilder
答案 1 :(得分:2)
String是不可变对象,因此您需要执行
key = key.concat(String.valueOf(keyset.charAt(rnd.nextInt(keyset.length() - 1))));
答案 2 :(得分:1)
更快更简单的方法是使用StringBuilder(用于构建字符串)
StringBuilder key = new StringBuilder(9);
while(key.length() < 9)
key.append(keyset.charAt(rnd.nextInt(keyset.length() - 1)));
return key.toString();