我正在做一个项目,我需要开发一个将随机字符放入String
我通过String
插入Scanner
。
我在考虑使用库 java.lang.StringBuilder ,然后使用insert()
。但我不知道是否可行,因为该方法还需要读取空白区域什么都不做,转到下一个词。
赞:StringBuilder sb = new StringBuilder();
sb.insrt();
例如:
输入:“Hello World”
输出:“ H E E J L R L Q O W N O V R B L Y D “
(我把原文中的字母大胆地写出来)
在这种情况下,我需要程序在x + 1中插入随机字符,换句话说,读取第一个字母跳过和第二个位置,他放一个随机字母,依此类推......
答案 0 :(得分:0)
在你的例子中,你将原始字符串中的字符大写,我将在我的答案中忽略它。
您应首先选择您的字母范围,例如a-z或A-Z(注意大小写)。然后 - 创建一个随机范围 - 类似于以下代码:
Random rn = new Random();
int minimum = 97; // the byte code of ASCII 'a'
int n = 26; //Letters in the ABC
String newString = "";
for (int i = 0; i < oldString.length; i++){
int k = rn.nextInt(n);
randomNum = minimum + k;
newString += oldString.charAt(i);
newString += (char)randomNum;
}
这会给你一个随机的a-z
答案 1 :(得分:0)
您可以使用一个字符串输入整个字符串,并将输出存储为另一个
Random random = new Random();
String input,output = "";
Scanner sc = new Scanner(System.in);
input = sc.nextLine();
for(int i = 0; i<input.length(); i++){
output += input.charAt(i);
output += (char)(random.nextInt(25) + 97); // Random Character 'a to z'
}
System.out.println(output);
在for
循环中,我们首先汇总给定索引input
的{{1}}字符。
然后我们生成一个随机数(范围从97到122)并将它们转换为i
(a到z)并在输出中将它们连接起来。