如何使用insert方法在String中随机插入字符

时间:2017-12-18 10:03:30

标签: java string random

我正在做一个项目,我需要开发一个将随机字符放入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中插入随机字符,换句话说,读取第一个字母跳过和第二个位置,他放一个随机字母,依此类推......

2 个答案:

答案 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)并在输出中将它们连接起来。