我有2个字符我需要转换为字符串。我可以转换一个没问题,但如何将2个随机生成的字符转换为一个字符串?到目前为止,这是我的代码,我的程序的目的是随机生成两个字符并返回它们:
import java.util.Random;
public class PasswordGenerator {
Random rand = new Random();
public String uppercaseLetters() {
char char1;
char char2;
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String result;
char1 = alphabet.charAt(rand.nextInt(25));
char2 = alphabet.charAt(rand.nextInt(25));
result = String.valueOf(char1, char2);
return result;
}
public static void main(String[] args) {
PasswordGenerator pg = new PasswordGenerator();
System.out.println(pg.uppercaseLetters());
}
}
答案 0 :(得分:3)
String的一个构造函数需要一个char[]
,因此可以直接构造String,而不需要连接技巧或StringBuilder。
result = new String(new char[] { char1, char2 });
答案 1 :(得分:2)
与String
连接的char
是String
1 。所以你可以做到,
result = String.valueOf(char1) + char2;
或类似
result = "" + char1 + char2;
另外,我更喜欢使用StringBuilder
。我还会将length
和参数,将Random
和String
移出方法。
class PasswordGenerator {
final Random rand = new Random();
final static String upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
public String uppercaseLetters(int len) {
StringBuilder sb = new StringBuilder(len);
for (int i = 0; i < len; i++) {
sb.append(upperCase.charAt(rand.nextInt(upperCase.length())));
}
return sb.toString();
}
}
然后,您可以将其称为pg.uppercaseLetters(2)
或pg.uppercaseLetters(4)
,并获取n
个字母(而不是2
)。
1 char
是Java中的integral value,因此char
+ char
是int
。 < / SUP>
答案 2 :(得分:1)
您可以使用StringBuilder,
public String uppercaseLetters() {
char char1;
char char2;
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String result;
char1 = alphabet.charAt(rand.nextInt(25));
char2 = alphabet.charAt(rand.nextInt(25));
result = new StringBuilder().append(char1).append(char2).toString();
return result;
}
或仅return new StringBuilder().append(char1).append(char2).toString();
答案 3 :(得分:0)
更改一行:
result = "" + char1 + char2;
此外,您无需创建变量result
,只需执行以下操作:
return = "" + char1 + char2;