gpt4 book ai didi

c# - 如何随机化文本文件中的单词

转载 作者:太空宇宙 更新时间:2023-11-03 19:39:30 25 4
gpt4 key购买 nike

我想问一下,我是否可以随机化从我制作的文本文件数据中获得的单词。

我实际上已经从文本文件中得到了这个词并存储到一个字符数组中。

这是我目前所拥有的

我创建了一个名为 Shuffle 的方法

void Shuffle(string[] chArr)
{
//Shuffle
for (int i = 0; i < chArr.Length; i++)
{
string tmp = chArr[i].ToString();
int r = Random.Range(i, chArr.Length);
chArr[i] = chArr[r];
chArr[r] = tmp;

}
Debug.Log(chArr);
}

然后像这样使用它

string temp = textArray[rowsToReadFrom[0]];
temp = System.Text.RegularExpressions.Regex.Replace(temp, @"\s", "");
char[] chArr = temp.ToCharArray();

string s = chArr.ToString();
string[] ss = new string[] { s };
Shuffle(ss);

foreach (char c in chArr)
{
testObject clone = Instantiate(prefab.gameObject).GetComponent<testObject>();
clone.transform.SetParent(container);

charObjects.Add(clone.Init(c));

//Debug.Log(c);
}

它仍然没有随机化我从文本文件数据中得到的那个词。

已编辑

到目前为止,这是我所做的

string temp = textArray[rowsToReadFrom[0]];
temp = System.Text.RegularExpressions.Regex.Replace(temp, @"\s", "");
char[] chArr = temp.ToCharArray();

string charResult = "";
for(int i = 0; i < chArr.Length; i++)
{
int ran = Random.Range(0, chArr.Length);
charResult += chArr[ran];
}

Debug.Log(charResult);

foreach (char c in charResult)
{

testObject clone = Instantiate(prefab.gameObject).GetComponent<testObject>();
clone.transform.SetParent(container);

charObjects.Add(clone.Init(c));

//Debug.Log(c);
}


但不是给我例如“放弃”这个词,有时它会给我一个随机词“aaaabn”,有人能帮我弄清楚为什么吗?

最佳答案

我将使用 Fisher–Yates_shuffle

 public static string Shuffle(string str)
{
System.Random random = new System.Random();
var array = str.ToCharArray();
for (int i = 0; i < array.Length; i++)
{
int j = random.Next(i, array.Length);
char temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return String.Join("", array);
}

并简单地使用它

var f = "hello";

Console.WriteLine(Shuffle(f));

关于c# - 如何随机化文本文件中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55673252/

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