![](/img/trans.png)
[英]How to concatenate a character to a SQL string in a preparedstatemenet
[英]How to concatenate a character to a string?
我正在尝试编写一个使用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
是不可变的,因此您不能以任何方式修改字符串。 s1.concat(...)
返回一个新的String
对象。 如果需要,可以执行s1=s1.concat(...)
之类的操作;如果需要提高性能,可以使用实现可变字符串的StringBuffer
类。
(condition) ? ifTrue : ifFalse
那就是你的方法正在做的。 您说的是“如果我们生成一个真实的语句,我们使用a,如果我们生成一个假的,我们使用z。”
听起来您想在a到z的RANGE中使用随机字符。 做到这一点最干净的方法可能是使用字符并从范围中生成数字。
字符在内部的作用与整数几乎相同,您可以在其中添加字符以增加可能的字符。 因此,您只想生成一个在'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';
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.