通过替换来审查字符串 [] 中的单词
本文关键字:单词 字符串 替换 审查 | 更新日期: 2023-09-27 17:56:39
我正在为一个游戏制作一个审查程序,.dll我不知道该怎么做。我有一串单词和句子。我已经找到了如何过滤单词和阻止消息的方法。现在我正在尝试用与单词长度相同的 * 替换单词。例如,如果有人说"去他妈的那个愚蠢的屁股",它会变成**** that stupid ***
.以下是我正在使用的代码
public void Actionfor(ServerChatEventArgs args)
{
var player = TShock.Players[args.Who];
if (!args.Text.ToLower().StartsWith("/") || args.Text.ToLower().StartsWith("/w") || args.Text.ToLower().StartsWith("/r") || args.Text.ToLower().StartsWith("/me") || args.Text.ToLower().StartsWith("/c") || args.Text.ToLower().StartsWith("/party"))
{
foreach (string Word in config.BanWords)
{
if (player.Group.HasPermission("caw.staff"))
{
args.Handled = false;
}
else if (args.Text.ToLower().Contains(Word))
{
switch (config.Action)
{
case "kick":
args.Handled = true;
TShock.Utils.Kick(player, config.KickMessage, true, false);
break;
case "ignore":
args.Handled = true;
player.SendErrorMessage("Your message has been ignored for saying: {0}", Word);
break;
case "censor":
args.Handled = false;
var wordlength = Word.Length;
break;
case "donothing":
args.Handled = false;
break;
}
}
}
}
else
{
args.Handled = false;
}
}
public string[] BanWords = { "fuck", "ass", "can i be staff", "can i be admin" };
在我的"审查员"的情况下,有些地方有这样的代码
Word = Word.Replace(Word, new string("*", Word.Length));
但是我总是收到一个错误,无法将字符串转换为字符,并且无法弄清楚其他事情。
编译器告诉你问题;你想要的String
的过载需要char
和int
,而不是string
和int
。
它正在尝试将*
从字符串转换为字符。 将双引号"
替换为单引号 '
。
对于chars
,请使用单引号'
而不是双引号"
如下所示:
new string('*', Word.Length)
在您的代码中,您不需要替换。只需做:
Word = new string('*', Word.Length);