将字符串限制为字母,C#

时间:2014-04-02 18:21:21

标签: c# regex parsing while-loop readline

我制作了以下代码:

string fname;
Console.WriteLine("Input  employee first name:");
fname = Console.ReadLine();

这个想法是插入一个while循环(带有" if"在其中)以限制从控制台输入到字母。但是,使用Tryparse并不起作用,因为它会将字符串解析为int。我很高兴收到关于如何通过" Tryparsing"解决这个问题的建议。字符串到字符串。

2 个答案:

答案 0 :(得分:1)

试试这个:

    Console.Write("Input  employee first name: ");
    var s = new StringBuilder();
    do
    {
        var key = Console.ReadKey(true);
        if (key.KeyChar == '\r')
            break;

        if (char.IsLetter(key.KeyChar))
        {
            Console.Write(key.KeyChar);
            s.Append(key.KeyChar);
        }
    } while (true);

    Console.WriteLine();
    Console.WriteLine( "You typed " + s.ToString());

答案 1 :(得分:0)

正如您在问题评论中提到的那样,RegEx可能是评估输入的最简单方法

if (Regex.IsMatch("yourtexthere", "^[a-zA-Z]{1,25}$").Success) {
    // it matches                
}

这应该会让你知道如何完成它