老师要我创建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/

10-09 08:40