我正在做一个项目,我需要开发一个将随机字符放入String
的类或方法
我通过String
插入一个Scanner
。
我正在考虑使用库java.lang.StringBuilder然后使用insert()
.But我不知道这是否有效,因为该方法还需要读取空白空间并且不做任何事情并移动到下一个单词。
喜欢:StringBuilder sb = new StringBuilder();
sb.insrt();
例如:
输入:“Hello World”
输出:“HEEJLRLQO WNOVRBLYD”
(我把这封信从原文中加入)
在这种情况下,我需要程序在x + 1中插入随机字符,换句话说,读取第一个字母跳过和第二个位置,他放一个随机字母,依此类推......
在你的例子中,你将原始字符串中的字符大写,我将在我的答案中忽略它。
您应首先选择您的字母范围,例如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
您可以使用一个字符串输入整个字符串,并将输出存储为另一个字符串
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
的i
字符。
然后我们生成一个随机数(范围从97到122)并将它们转换为char
(a到z)并在输出中将它们连接起来。