好吧所以我需要测试一个包含除字母之外的变量的变量;意思是不允许空格,没有数字也没有符号。我以为我已经弄明白但我无法正常工作。这就是我所拥有的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace soro
{
class Program
{
static void notOnlyString(string word)
{
Regex.IsMatch(word, @"^[a-zA-Z]+$");
}
static void Main(string[] args)
{
string var1;
//lots of code here
var1 = Console.ReadLine();
if (notOnlyString(var1))
{
//do this if it has a number, space or symbol; anything but
//letters
}
//more code
}
}
答案 0 :(得分:1)
您可以使用
进行检查bool result = word.All(Char.IsLetter);
如果你需要Digits使用它
bool result = word.All(Char.IsLetterOrDigit);
答案 1 :(得分:1)
你的正则表达式看起来是正确的。关于代码的一个重大错误是notOnlyString
的返回类型。
notOnlyString
的命名很糟糕。不要使用“否定”语句作为方法名称。我建议IsOnlyLetters
。
由于您要在if语句中调用IsOnlyLetters
,因此应返回bool
值。
static bool notOnlyString(string word) // note that I changed "void" to "bool"
{
return Regex.IsMatch(word, @"^[a-zA-Z]+$"); / here I added "return" to return the result of the "IsMatch" call.
}
现在你应该将if语句中的条件更改为(!IsOnlyLetters(var1))
,一切都应该有效。
答案 2 :(得分:-1)