1. 程式人生 > >遊戲名稱遮蔽字簡單篩選Demo

遊戲名稱遮蔽字簡單篩選Demo

static List<string> strs = new List<string>();

public static string ComparisonStr(string str)
{
    char[] ch = str.ToCharArray();
    for (int i = 0; i < ch.Length; i++)
    {
        if (strs.Exists(e => e == ch[i].ToString()))
        {
            return "存在";
        }
        else
        {
            //4表示最大四個字的篩選
            if (MaxNum(ch, i, 4)) { return "存在"; }
        }
    }
    return null;
}

public static bool MaxNum(char[] ch, int var, int num)
{
    for (int i = 1; i < num; i++)
    {
        if (var < ch.Length - i)
        {
            if (AddChar(ch, var, i + 1)) { return true; };
        }
    }
    return false;
}

/// <param name="ch">位元組陣列</param>
/// <param name="var">當前迴圈的i值</param>
/// <param name="num">string的個數</param>
/// <returns></returns>
public static bool AddChar(char[] ch, int var, int num)
{
    string str = string.Empty;
    for (int i = 0; i < num; i++)
    {
        str += ch[var + i].ToString();
    }
    if (strs.Exists(e => e == str))
    {
        return true;
    }
    return false;
}

控制檯測試程式碼

static void Main(string[] args)
{
    strs.Add("1");
    strs.Add("56");
    strs.Add("789");
    strs.Add("好好學習");
    PrintStr();
}
public static void PrintStr()
{
    Console.WriteLine("請輸入一個字串");
    string a = Console.ReadLine();
    if (a != "0")
    {
        Console.WriteLine(ComparisonStr(a));
        Console.WriteLine();
        PrintStr();
    }
    else
    {
        Console.WriteLine("退出");
    }
}