Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果字符串只包含字母表中的字母,而不包含数字或C#中的其他内容,请检查该字符串?_C#_String - Fatal编程技术网

如果字符串只包含字母表中的字母,而不包含数字或C#中的其他内容,请检查该字符串?

如果字符串只包含字母表中的字母,而不包含数字或C#中的其他内容,请检查该字符串?,c#,string,C#,String,我有个问题。我在网上研究过,当然还有stackoverflow的搜索功能。我还发现了一些类似的问题,但它们要么是在另一种编程语言中,要么不是我想要做的。 下面是我的详细问题: 我正在创建一个简单的控制台刽子手游戏(我是初学者)。我只是一个人做这件事,因为我认为如果我自己做的话,我学到的最多。无论如何,我要求用户输入他的单词并将其保存到变量中。我也把它改成大写。 现在我想检查这个单词是否只包含字母表中的有效字母。 然后我想把它放在一个if条件下,这样他会再次被询问是否输入了一个数字 但我不知道怎么

我有个问题。我在网上研究过,当然还有stackoverflow的搜索功能。我还发现了一些类似的问题,但它们要么是在另一种编程语言中,要么不是我想要做的。 下面是我的详细问题:

我正在创建一个简单的控制台刽子手游戏(我是初学者)。我只是一个人做这件事,因为我认为如果我自己做的话,我学到的最多。无论如何,我要求用户输入他的单词并将其保存到变量中。我也把它改成大写。 现在我想检查这个单词是否只包含字母表中的有效字母。 然后我想把它放在一个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();

    }

}

第一参考系.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!");
}

第一参考系.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 isLettersOnly = !word.Any(c => !char.IsLetter(c));

可以用这个来检查

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

这应该可以做到:

bool result = input.All(Char.IsLetter);
还有一个正则表达式解决方案:

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

Char.isleter是更好的解决方案,因为它将任何语言字母都视为字母。这个正则表达式也会对它们进行计数,但它看起来更紧凑,使用Isleter应该可以:

bool result = input.All(Char.IsLetter);
还有一个正则表达式解决方案:

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

Char.isleter是更好的解决方案,因为它将任何语言字母都视为字母。这个正则表达式也会对它们进行计数,但它看起来更紧凑,使用IsLetter

阅读正则表达式又名正则表达式,它们有助于准确描述您希望输入的内容,在您的情况下,它将类似于:

Regex(@"^[a-zA-Z]*");
这意味着只接受由字母字符组成的字符串


看看这个例子,了解如何使用它。

阅读Regex又名正则表达式,它们有助于准确描述您希望输入的内容,在您的情况下,它将类似于:

Regex(@"^[a-zA-Z]*");
这意味着只接受由字母字符组成的字符串


查看此示例以了解如何使用它。

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

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

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

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

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

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

您可以使用正则表达式

对于字母表

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

您可以使用正则表达式

对于字母表

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

我想这应该可以用
word.All(c=>char.isleter(c))
我注意到了德语消息。你是否意识到德语字母表和英语字母表不一样,很多人认为你想要的是英语字母表?你想接受德语字母表中的所有字符,或者甚至是其他字母表中的字符吗?你是一个幸运的家伙,7个不同的人向你建议了基本相同的解决方案!:)谢谢你的帮助:)我想这应该可以用
word.All(c=>char.isleter(c))
我注意到了这个德语消息。你是否意识到德语字母表和英语字母表不一样,很多人认为你想要的是英语字母表?你想接受德语字母表中的所有字符,或者甚至是其他字母表中的字符吗?你是一个幸运的家伙,7个不同的人向你建议了基本相同的解决方案!:)谢谢你的帮助:)嗨,谢谢你的意见。All()对我来说是完美的解决方案。我实现了它,它工作得很好:)很高兴它能帮助您自由地将其标记为答案,这样您就可以让其他观众知道这对您有帮助了。谢谢您的输入。All()是我的完美解决方案。我实现了它,它工作得很好:)很高兴它能帮助您自由地将它标记为一个答案,这样您就可以让其他观众知道这有助于您解决问题了。嗨,谢谢您提供了这个解决方案。我现在有如下内容:私有字符串AskUserForWord(){while(true){Console.WriteLine(“bite gib ein Wort ein das es zu erraten gilt.Sag deinem Mitspieler er soll weg sehen:”);字符串word=ToUpper(Console.ReadLine());bool result=word.All(Char.isleter);if(result){return word;}}}但是我不理解你的解决方案。为什么``if(word.All(c=>Char.isleter(c))``?嗨,谢谢你提供了这个解决方案。我现在有了如下内容:私有字符串AskUserForWord(){while(true){Console.WriteLine(“bite gib ein Wort ein das es zu erraten gilt.Sag deinem Mitspieler er soll weg sehen:”);string word=ToUpper(Console.ReadLine());bool result=word.All(Char.isleter);if(result){return word;}}但我不明白你的解决方案。为什么``if(word.All(c=>char.isleter(c))``?