嗨,我尝试在此处验证我的字符串,以便不允许以911开头的任何输入,因此,如果您键入:“ 9 11”,“ 91 1”,“ 9 1 1”,则应该通过if声明。它可以与“ 911”一起使用,但不能与其他人一起使用,这是我的代码:

using System;
using System.Collections.Generic;

namespace Phone_List
{
    class Program
    {
        static void Main(string[] args)
        {
            var phoneList = new List<string>();
            string input;
            Console.WriteLine("Input: ");

            while ((input = Console.ReadLine()) != "")
            {
                phoneList.Add(input);

                for (int i = 0; i < phoneList.Count; i++)
                {
                    if (phoneList[i].Substring(0, 3) == "911")
                    {
                        input.StartsWith("9 11");
                        input.StartsWith("9 1 1");
                        input.StartsWith("91 1");
                        Console.WriteLine("NO");
                        Console.ReadLine();
                        return;
                    }

                    else
                    {
                        Console.WriteLine("YES");
                        Console.ReadLine();
                        return;
                    }
                }
            }
        }
    }
}


如您所见,我正在尝试使用“ input.StartsWith("9 11");”但这不起作用...

最佳答案

使用正则表达式进行此类检查。

例如:

Regex.IsMatch(input, "^\\s*9\\s*1\\s*1");


此正则表达式匹配所有在“ 911”前面和之间包含空格的字符串。

10-08 12:38