如何检查字符串中的每个字符是否只是一个特定的字母?

时间:2016-10-31 10:07:46

标签: c# string

如何检查我的整个字符串是否只是每个字符位置的一个字母?例如,我想检查字符串变量" Word1"只包含" _" (下划线)。

让我们说Word1 =" ____&#34 ;;程序如何检查以确保该变量中没有字母只是下划线?

3 个答案:

答案 0 :(得分:5)

使用Linq All

char charToTest = '_';
var result = myString.All(x => x == charToTest);

仅当在任何位置找到true时才返回charToTest。此外,当任何位置具有另一个字符时,该语句立即返回false而不检查其他位置。

编辑:正如@CSharpie指出的那样,如果你的字符串为空,这也会返回true。为避免在String.IsNullOrEmpty之前检查:

var result = !String.IsNullOrEmpty(myString) && myString.All(x => x == charToTest);

答案 1 :(得分:1)

您可以使用Linq(using System.Linq

来完成此操作
if (Word1.All(c => c == '_'))
{
    // only underscores
}

答案 2 :(得分:1)

Linq All是最干净的方式,但您也可以使用正则表达式执行此任务 类似于:^(_+)$的内容仅在有一个或多个_

时才会匹配
    Regex regex = new Regex(@"^(_+)$");
    if (match.IsMatch(myString))
        Console.WriteLine("Matched");