老师要我创建2个文件并在其中插入随机字符。两个文件的长度应相同。在一个文件中,关键字“ Hello”应随机插入。
我对第一个文件做了此操作:
var stringChars = new char[100];
var random = new Random();
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (int i = 0; i < stringChars.Length; i++)
{
stringChars[i] = chars[random.Next(chars.Length)];
}
我为第二个文件做了这个:
var stringChars2 = new char[100];
var random2 = new Random();
var chars2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZxxxxx";
for (int i = 0; i < stringChars2.Length; i++)
{
stringChars2[i] = chars2[random2.Next(chars2.Length)];
}
string string2 = new string(stringChars2);
string2 = string2.Replace("x", "\"Hello\"");
我的问题是我不知道如何用字符串替换技巧使两个文件的长度相等。第二个文件将始终更长。
最佳答案
这是一种面向对象的方法。我强调这种方法,因为您必须多次执行类似的操作(两次)。因此,您不应该重复自己(google DRY prinicpal)。
我不会告诉您如何使用这些方法,您可以自己了解一下:
public static class StringManipulation
{
public static string GetXRandomCharacters(int x)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
var random = new Random();
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (int i = 0; i < stringChars.Length; i++)
{
sb.Append(chars[random.Next(chars.Length)]);
}
return sb;
}
public static string InjectWordAtRandom(string str, string word)
{
var random = new Random();
int start = random.Next(str.Length - word.Length);
str.Remove(start, word.Length).Insert(start, word);
}
}
提示:我提供了静态方法,但您不必那样做。尝试从方法标题中删除
static
并创建该类的实例以访问其属性。关于c# - C#编程分配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24815290/