Java 将2个字符转换为字符串
我有2个字符需要转换成字符串。我可以转换一个没有问题,但如何将2个随机生成的字符转换为一个字符串?这是到目前为止我的代码,我的程序的目的是随机生成两个字符并返回它们:Java 将2个字符转换为字符串,java,Java,我有2个字符需要转换成字符串。我可以转换一个没有问题,但如何将2个随机生成的字符转换为一个字符串?这是到目前为止我的代码,我的程序的目的是随机生成两个字符并返回它们: import java.util.Random; public class PasswordGenerator { Random rand = new Random(); public String uppercaseLetters() { char char1; char char2;
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());
}
}
更改一行:
result = "" + char1 + char2;
此外,您不需要创建变量result
,只需执行以下操作:
return = "" + char1 + char2;
更改一行:
result = "" + char1 + char2;
此外,您不需要创建变量result
,只需执行以下操作:
return = "" + char1 + char2;
字符串
与char
连接在一起是字符串
1。所以你可以
result = String.valueOf(char1) + char2;
或类似于
result = "" + char1 + char2;
另外,我真的更喜欢用a。我还将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();
}
}
类密码生成器{
最终随机数=新随机数();
最终静态字符串大写=“abcdefghijklmnopqrstuvxyz”;
公共字符串大写字母(整数长度){
StringBuilder sb=新StringBuilder(len);
对于(int i=0;i
然后你可以像pg.uppercaseLetters(2)
或pg.uppercaseLetters(4)
那样调用它,得到n
个字母(而不是2
)
1
char
在Java中是一个字符串,因此char
+char
是一个int
与char
相连的字符串是一个字符串。所以你可以
result = String.valueOf(char1) + char2;
或类似于
result = "" + char1 + char2;
另外,我真的更喜欢用a。我还将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();
}
}
类密码生成器{
最终随机数=新随机数();
最终静态字符串大写=“abcdefghijklmnopqrstuvxyz”;
公共字符串大写字母(整数长度){
StringBuilder sb=新StringBuilder(len);
对于(int i=0;i
然后你可以像pg.uppercaseLetters(2)
或pg.uppercaseLetters(4)
那样调用它,得到n
个字母(而不是2
)
1char
是Java中的一个,因此char
+char
是一个int
可以使用
或者只返回新的StringBuilder().append(char1.append)(char2.toString()代码>您可以使用
或者只返回新的StringBuilder().append(char1.append)(char2.toString()代码>字符串的一个构造函数采用了char[]
,这样您就可以直接构造字符串,而无需串联技巧或StringBuilder
result = new String(new char[] { char1, char2 });
String的一个构造函数采用了char[]
,这样就可以直接构造字符串,而无需串联技巧或StringBuilder
result = new String(new char[] { char1, char2 });
重复的可能重复的可能重复的可能重复的谢谢,你能解释一下双引号是用来做什么的吗?为什么没有它们代码就不能工作?@JamesB空字符串(”
)使它成为string+char+char
,这是string
,char+char
是int
(因为char
是一个整数类型,'a'+1='b'
)上标1标记并不能解释这个答案的第一句话。请编辑以澄清这一令人困惑的脱节。谢谢,你能解释一下双引号的作用吗?为什么没有它们代码就不能工作?@JamesB空字符串(”
)使它成为string+char+char
,这是string
,char+char
是int
(因为char
是一个整数类型,'a'+1='b'
)上标1标记并不能解释这个答案的第一句话。请编辑以澄清该问题。