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

问题描述 投票:-5回答:2

我正在做一个项目,我需要开发一个将随机字符放入String的类或方法

我通过String插入一个Scanner

我正在考虑使用库java.lang.StringBuilder然后使用insert().But我不知道这是否有效,因为该方法还需要读取空白空间并且不做任何事情并移动到下一个单词。

喜欢:StringBuilder sb = new StringBuilder(); sb.insrt();

例如:

输入:“Hello World”

输出:“HEEJLRLQO WNOVRBLYD”

(我把这封信从原文中加入)

在这种情况下,我需要程序在x + 1中插入随机字符,换句话说,读取第一个字母跳过和第二个位置,他放一个随机字母,依此类推......

java string random
2个回答
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

  • 这段代码也会在原始字符串之后放置一个随机字母,但我相信你可以处理它

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循环中,我们首先连接给定索引inputi字符。 然后我们生成一个随机数(范围从97到122)并将它们转换为char(a到z)并在输出中将它们连接起来。

© www.soinside.com 2019 - 2024. All rights reserved.