Java 如何将字符连接到字符串?

Java 如何将字符连接到字符串?,java,eclipse,string,char,concatenation,Java,Eclipse,String,Char,Concatenation,我正在尝试编写一个程序,使用randomgenerator创建随机单词。但是如何将随机生成器生成的字符添加到字符串中?“a:z”对吗?或者如何告诉生成器使用a和z之间的所有数字 public class StringTraining extends ConsoleProgram { public void run() { String s1 = null; randomChar(); s1.concat(randomChar()); println(s1); }

我正在尝试编写一个程序,使用randomgenerator创建随机单词。但是如何将随机生成器生成的字符添加到字符串中?“a:z”对吗?或者如何告诉生成器使用a和z之间的所有数字

public class StringTraining extends ConsoleProgram {
public void run() {
    String s1 = null;
    randomChar();
    s1.concat(randomChar());
    println(s1);
}

private String randomChar() {
    String word = rgen.nextBoolean() ? "a" : "z";
    return word;
}

Java
String
s是不可变的,因此不能以任何方式修改字符串
s1.concat(…)
返回一个新的
String
对象。如果需要,可以执行类似于
s1=s1.concat(…)
的操作,如果需要一些性能,可以使用实现可变字符串的
StringBuffer

(condition) ? ifTrue : ifFalse
这就是你的方法所做的。你是说“如果我们生成一个真的语句,我们使用a,如果我们生成一个假语句,我们使用z。”

听起来像是要使用从a到z范围内的随机字符。最干净的方法可能是使用字符并从一个范围生成一个数字

字符在内部的作用与整数几乎相同,您可以在其中添加字符以通过可能的字符递增。因此,您只需要生成范围为“a”到“z”的字符。我已经有一段时间没有接触java了,所以我不知道是否有一种简单的方法可以做到这一点。但是,如果您想以一种稍微混乱的方式查找为您提供服务的库,您可以从“a”开始,生成一个介于0和25(包括)之间的随机数,并将结果添加到“a”中例如,a'+1将返回'b'

然后,只需将该字符附加到您的单词中,就可以了


注意:字符和字符串是不同的。此逻辑不适用于字符串。您需要使用单引号而不是双引号将“a”初始化为字符

我花了今天的时间做这件事是为了好玩,作为一种学习经验。也许其他人能给出比我更优雅的答案,但我就是这样做的

public static String getString(){

    char[] result = new char[10];

    for(int a=0; a<result.length; a++){
        result[a] = getLetter(); 
    }

    return new String(result);
}

public static char getLetter(){

    boolean case = true;
    if((1 + (Math.random() * 2) == 2){
        case = false;
    }        

    if(case){
        switch((int) (1 + (Math.random() * 26))){

            case 1:
                return 'a';
            case 2:
                return 'b';
            case 3:
                return 'c';
            case 4:
                return 'd';
            case 5:
                return 'e';
            case 6:
                return 'f';
            case 7:
                return 'g';
            case 8:
                return 'h';
            case 9:
                return 'i';
            case 10:
                return 'j';
            case 11:
                return 'k';
            case 12:
                return 'l';
            case 13:
                return 'm';
            case 14:
                return 'n';
            case 15:
                return 'o';
            case 16:
                return 'p';
            case 17:
                return 'q';
            case 18:
                return 'r';
            case 19:
                return 's';
            case 20:
                return 't';
            case 21:
                return 'u';
            case 22:
                return 'v';
            case 23:
                return 'w';
            case 24:
                return 'x';
            case 25:
                return 'y';
            case 26:
                return 'z';

        }
    }else{
        switch((int)(1 + (Math.random() * 26))){

            case 1:
                return 'A';
            case 2:
                return 'B';
            case 3:
                return 'C';
            case 4:
                return 'D';
            case 5:
                return 'E';
            case 6:
                return 'F';
            case 7:
                return 'G';
            case 8:
                return 'H';
            case 9:
                return 'I';
            case 10:
                return 'J';
            case 11:
                return 'K';
            case 12:
                return 'L';
            case 13:
                return 'M';
            case 14:
                return 'N';
            case 15:
                return 'O';
            case 16:
                return 'P';
            case 17:
                return 'Q';
            case 18:
                return 'R';
            case 19:
                return 'S';
            case 20:
                return 'T';
            case 21:
                return 'U';
            case 22:
                return 'V';
            case 23:
                return 'W';
            case 24:
                return 'X';
            case 25:
                return 'Y';
            case 26:
                return 'Z';
        }
    }
    return '\0';
}
公共静态字符串getString(){
字符[]结果=新字符[10];

对于(int a=0;与使用随机双生成器(假设字符均匀分布)相比,使用随机布尔生成器对所有26个字母进行编码更难实现)。不,“a”。“z”实现不正确,现在您得到的是“a”或“z”。我刚才提供的答案稍微优雅一点。你的思路肯定是对的!字符的好处是你可以通过添加整数来增加它们,因为在内部,字符只是一个美化的整数。所以像“a”+1这样的东西会返回“b”。所以你只需将整数范围转换为0到25,而不是1到25ugh 26,并将结果添加到字符“a”中。使用java库可能还有更优雅的东西,但如果您的目标是自学,那么自己实现它就很棒了=)