繁体   English   中英

检查字符串是否仅包含字母字母,而不包含数字或C#中的其他内容?

[英]Check a string if it only contains letters from the alphabet and not numbers or other stuff in C#?

我有个问题。 我已经在网络上对其进行了研究,当然还有在stackoverflow上使用了搜索功能。 我还发现了一些类似的问题,但是它们在另一种编程语言中还是我不想要的地方。 所以这是我的详细问题:

我正在创建一个简单的控制台Hangman游戏(初学者)。 我只是自己做这件事,因为如果我自己做的话,我认为我学得最多。 无论如何,我都会向用户询问他的单词并将其保存到变量中。 我也把它变成大写。 现在,我要检查此单词是否仅包含字母表中的有效字母。 比我想把它设置为if条件,以便再次询问他是否输入数字。

但是我不知道该怎么做? 我用tryparse方法尝试过并包含它,但是我无法解决。 所以我想问您如何做到这一点?

我的代码:

class Hangman
{
    private string enteredWord;
    private char guessedLetter;



    public void Start()
    {
        enteredWord = AskUserForWord();
        Console.WriteLine(enteredWord);
        Console.ReadLine();

    }

    private string AskUserForWord()
    {



        Console.WriteLine("Bitte gib ein Wort ein das es zu erraten gilt. Sag deinem Mitspieler er soll weg sehen: ");
        string word = ToUpper(Console.ReadLine());

        if ()
        return word;
    }


    private string ToUpper(string word)
    {

        return word.ToUpper();

    }

}

首先参考system.linq:

using System.Linq;

然后修改您的AskUserForWord()函数:

while (true)
{
    Console.WriteLine("Bitte gib ein Wort ein das es zu erraten gilt. Sag deinem Mitspieler er soll weg sehen: ");
   string word = Console.ReadLine().ToUpper();

   if (word.All(c => char.IsLetter(c))
       return word;

   Console.WriteLine("Also bitte, nur Buchstaben sind hier erlaubt!");
}

这应该做的工作:

bool result = input.All(Char.IsLetter);

还有一个正则表达式解决方案:

Regex.IsMatch(theString, @"^[\p{L}]+$");

Char.IsLetter是更好的解决方案,因为它将任何语言字母都视为字母。 这个正则表达式也将计算在内,但使用IsLetter看起来仍然更紧凑

您可以使用正则表达式。

对于字母,

Regex.IsMatch(word, @"^[a-zA-Z]+$");

可以对此进行检查。

bool isLettersOnly = !word.Any(c => !char.IsLetter(c));

阅读正则表达式又称正则表达式,它们非常适合准确描述您希望输入的内容,在这种情况下,它类似于:

Regex(@"^[a-zA-Z]*");

这意味着仅接受由字母字符组成的字符串。

查看此示例https://msdn.microsoft.com/zh-cn/library/3y21t6y4(v=vs.110).aspx,以了解如何使用它。

您也可以尝试使用正则表达式。

Match match = Regex.Match("Testing a valid input ", @"(?i)^[a-z]+");

            if (match.Success)
            {
                //validation passed
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM