大家好我想检查用户输入(字符串)是否不等于布尔值,但显然不能这样做:
例如:
using System;
using System.Linq;
namespace SymbolCheck
{
class Program
{
static void Main(string[] args)
{
String symbol = Console.ReadLine();
int value;
bool isVowel = "aeiouAEIOU".IndexOf(symbol) >= 0;
if (int.TryParse(symbol, out value))
{
Console.WriteLine("Input is a number: " + symbol);
}
else if (symbol.Equals(isVowel) & symbol.Any(char.IsUpper))
{
Console.WriteLine("Input is a uppercase vowel: "+ symbol);
}
else if (symbol != isVowel)
{
Console.WriteLine("Input is a consonant: "+ symbol);
}
...
我有办法绕过它,但想知道是否还有另一种方法:
else if (symbol.Equals(isVowel) & symbol.Any(char.IsLower))
{
Console.WriteLine("Input is a lowercase vowel: "+ symbol);
}
else if (!int.TryParse(symbol, out value) & symbol.Any(char.IsUpper))
{
Console.WriteLine("Input is a uppercase consonant: " + symbol);
}
...
答案 0 :(得分:2)
您可能想要检查两个条件是否都为真:所以请使用&&
符号。因此,你的isVowel是一个布尔值,所以直接使用它(symbol.Equals(isVowel.ToString()
没有任何意义)
if (isVowel) && symbol.Any(char.IsUpper))
另一项检查将是
if (!isVowel)