首页 > 解决方案 > 脚本中的字符串 [] 但 []

问题描述

我正在为我的游戏制作一个简单的坏词过滤器!badwords = string[] (这意味着我可以将所有应该被阻止的坏词一个一个地放在 strings[] 中。(图一)

问题是我希望阻止许多坏词,并且将所有坏词一一放入 strings[]可能需要太多时间。

解决方案:是否有可能以某种方式将所有不好的词放入脚本中?例如,我可以从坏词列表中复制和粘贴它们吗?

我尝试过的:我尝试将string[] 设置为普通字符串,然后 string = "badwords" 然后我收到一个错误,指出该字符串无法转换为 char 或类似的东西(图 4)

我很感谢任何帮助!:D

这是我把坏话一一放的地方 脚本 从文本中删除坏词的脚本

编辑:那是新代码,我不确定如何将它变成 string[] badwors?我现在注意到,在第二张图片中,“String badwords”没有 [],但通常在 string(String[] badwords;) 之后有一个 []

public static void FormatBadWords()
{
    string pattern = "[,]+";
    string input = "bad, toobad, crazy";
    string[] result = Regex.Split(input, pattern,
                                  RegexOptions.IgnoreCase,
                                  TimeSpan.FromMilliseconds(500));
    for (int ctr = 0; ctr < result.Length; ctr++)
    {
        Console.Write("'{0}'", result[ctr]);
        if (ctr < result.Length - 1)
            Console.Write(", ");
    }
    Console.WriteLine();
}

标签: c#stringfilter

解决方案


您可以使用 string.Split() 并使用带有逗号分隔值的文本文件:

 class Program
{
    static void Main(string[] args)
    {
        //Assume this as your string that needs fiter
        string myString = "These are my bad words: bad, toBad";

        //Put words in a file or simply hardcode: string badWordsCommaSeperated = "bad, toBad"
        string badWordsCommaSeperated = File.ReadAllText(@"..\..\BadWords.txt");

        //Catch the above Comma-Seperated string in string array
        string[] badWords = badWordsCommaSeperated.Split(',');

        // Loop all bad words in the array using foreach and replace myString
        foreach(string badWord in badWords)
        {
            myString = myString.Replace(badWord, "");
        }

        Console.WriteLine(myString);
        //Final Value of myString: These are my  words: ,
    }
}

}


推荐阅读