gpt4 book ai didi

java - 使用多个随机换行创建新字符串

转载 作者:搜寻专家 更新时间:2023-10-31 19:54:16 25 4
gpt4 key购买 nike

我有一个字符串:

String text = "Nothing right in my brain. Nothing left in my brain"

我想创建一个 new 字符串 text2,其中有 2-4 个随机换行符,例如:

"Nothing \n right \n in my brain.  \n Nothing left in my brain"

"Nothing right in \n my brain. Nothing left in \n my brain"

如何在单词之间创建一个随机换行的新字符串?我正在考虑获取空白索引,以便在随机空白之后插入新行。但我只不断得到第一个空白索引。有人知道解决这个问题的更好方法吗?谢谢。

最佳答案

您的问题分为三个阶段,拆分 String , 插入随机性并一起使用它们......

拆分 String

String.split() 将其分解成单词, 它通过空格创建一个字符串数组(在本例中为单词)。

  String[] words = text.split(" "); //Split by spaces

然后重建你的String例如添加换行符:-

 StringBuiler sb = new StringBuilder();
for (String word : words)
{
sb.append(word + "\n");
}
String text2 = sb.toString();

在这种情况下,您将在每个单词之间插入一个换行符并将结果保存在 text2 中。

插入随机性

你可以创建一个 Random对象...

    Random random = new Random(); 

然后在插入换行符的代码中使用它,就像这样......

//Randomly add or don't add a newline (Compacted with a ternary operator instead of an 'if')
sb.append(word + (random.nextBoolean() ? "\n" : ""));

将它们整合在一起 (TLDR)

然后您需要做的就是维护插入换行符的数量并将它们限制在该数量内。所以你的代码变成:-

 int requiredNewlines = random.nextInt(2 - 5) + 2; //Number between 2-4
for (String word : words) //For each word
{
sb.append(word); //Add it
if (requiredNewlines >= 0 && random.nextBoolean())
{
//Randomly add newline if we haven't used too many
sb.append("\n");
requiredNewlines--;
}
}
String text2 = sbAppen.toString();

此外

尽管此示例中的随机性符合您的目的,但它并不是随机的理想实现(如评论中所述),因为更倾向于出现在 String 开始处的随机性。不是结尾,它不可能出现在第一个单词之前。

还有另一种选择是使用 StringTokenizer而不是 String.split()我更喜欢它,但它不处理正则表达式并且已经停止使用,所以我改变了我的答案以使用 String.split()

关于java - 使用多个随机换行创建新字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31071780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com