如何检查我的整个字符串是否只是每个字符位置的一个字母?例如,我想检查字符串变量" Word1"只包含" _" (下划线)。
让我们说Word1 =" ____&#34 ;;程序如何检查以确保该变量中没有字母只是下划线?
答案 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");