我有一个创建随机字符串的方法,该字符串包含用户指定长度的空格。问题是,有时它会在字符串的开头插入空格,并创建连续的空格。我如何解决这个问题,所以我的字符串在第一个字符中永远不会有任何空格,但仍然可以在其他索引处有空格(非连续)。请记住,我希望与sizeOfString参数完全匹配,因此我需要最终结果仍然是用户指定的字符数量
这是我的方法:
public static string CreateRandomString(int sizeOfString)
{
const string chars = "A b C D e F g H I 1 2 3 4 5 6 7 8 ";
var random = new Random();
return new string(Enumerable.Repeat(chars, sizeOfString)
.Select(s => s[random.Next(s.Length)]).ToArray());
}
答案 0 :(得分:3)
你可以创建一个无限的随机字符序列,当它们是空格时跳过,然后取你想要的字符数。
如果你在函数中声明了一个新的随机数,那么如果你过于频繁地调用该函数,你的随机字符串就会重复。
此外,空格的频率非常高,因为超过一半的字符是空格,您可以使用import numpy as np
x = np.zeros((1, 2, 3, 4, 5))
for i in range(5):
print(np.moveaxis(x, 3, i).shape)
来缓解这一点。
(4, 1, 2, 3, 5)
(1, 4, 2, 3, 5)
(1, 2, 4, 3, 5)
(1, 2, 3, 4, 5)
(1, 2, 3, 5, 4)
编辑 - 这里是第2版(最终版本):
chars = " AbCDeFgHI12345678"