C# 游戏制作中去除敏感字符/串

版权声明:本文为博主原创文章,未经博主允许不得转载。 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()方法赋值数据


猜你喜欢

转载自blog.csdn.net/LinZhonglong/article/details/77247896