版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LinZhonglong/article/details/77247896
原理:将输入的字符串转化为字符数组,遍历数组与敏感字符串列表对比,调用Split函数转换单个字符为*,如操。转化连续的字符为**,如中国
方法1:
Unity里使用:
工程目录下创建文本文档,添加敏感词便于后续扩展。保存格式UTF-8,可显示中文。文本内存放需要屏蔽的敏感字或串
public Text tex3;
//将文本文档放入这里
public TextAsset asset;
void Start()
{
str_list = new List ();
String[] cha=asset.text.Split(',');
for (int i = 0; i < cha.Length; i++)
str_list.Add (cha[i]);
}
//预先将敏感字符/串存入链表或数组
List str_list;
//调用该方法,传入UI输入的文字内容或测试的字符串
public String Trim(string s_tex)
{
if(string.IsNullOrEmpty(s_tex)) return;
String str = s_tex;
Char[] cha = str.ToCharArray ();
//转换成字符数组
int max = cha.Length-1;
//遍历字符数组
for (int i = 0; i <max; i++)
{
foreach (var item in str_list)
{
//和已存储在链表中的敏感字符或字符串对比
if (cha[i].ToString()==item)
{
str = str.Replace (cha[i].ToString(),"*");
//单个敏感字
}
if((cha[i].ToString()+cha[i+1].ToString()).ToString()==item)
{
str=str.Replace((cha[i].ToString()+cha[i+1].ToString()).ToString(),"**");
//双敏感字
}
}
}
return str.ToString ();
}
方法2:
只用作C#控制台输出:
将List链表换做数组即可,将测试敏感字存入数组,取Trim()方法调用输出。同Unity中在Start()方法赋值数据