Java 将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;

我有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());

    }

}
更改一行:

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

1
char
是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标记并不能解释这个答案的第一句话。请编辑以澄清该问题。