7

如果字符串大于或小于 10,我试图让我的代码进行比较,但它不能正常工作。即使值小于 10,它也会写入 10 或更多。

int result = string1.CompareTo("10");
if (result < 0)
{
     Console.WriteLine("less than 10");
}
else if (result >= 0)
{
     Console.WriteLine("10 or more");
} 
4

1 回答 1

25

字符串不是数字,因此您按字典顺序进行比较(从左到右)。String.CompareTo用于排序,但请注意"10"“低于”,"2"因为 char1已经低于char 2

我假设您想要的是将其转换为int

int i1 = int.Parse(string1);
if (i1 < 10)
{
    Console.WriteLine("less than 10");
}
else if (i1 >= 10)
{
    Console.WriteLine("10 or more");
} 

请注意,您应该使用int.TryParseifstring1可能具有无效格式。这样,您可以防止出现异常int.Parse,例如:

int i1;
if(!int.TryParse(string1, out i1))
{
    Console.WriteLine("Please provide a valid integer!");
}
else
{
    // code like above, i1 is the parsed int-value now
}

但是,如果您想检查一个字符串是长于还是于 10 个字符,则必须使用它的Length属性:

if (string1.Length < 10)
{
    Console.WriteLine("less than 10");
}
else if (string1.Length >= 10)
{
    Console.WriteLine("10 or more");
} 
于 2013-10-02T08:03:10.447 回答