繁体   English   中英

如何检查一个字符串的数字大于另一个字符串的数字?

[英]How can I check a string has a higher number than another string?

我有两个字符串:

var a = "200309";
var b = "200317";

我试过

if (a > b)

但这不起作用并给我一个错误。

如何检查一个字符串是否比另一个字符串具有更大的值?

如果您确定字符串包含有效数字,则可以使用Int32.Parse

var result = Int32.Parse(a) + Int32.Parse(b);

但是,如果字符串是用户输入,或者数字可能无效,您可以使用Int32.TryParse

例如,

var result = Int32.TryParse(a,out var valA) && Int32.TryParse(b,out var valB) ? 
                valA+valB 
               : throw new Exception("String cannot be converted to number");

或者使用传统的if条件

if(Int32.TryParse(a,out var valA) && Int32.TryParse(b,out var valB))
{
    var result = valA+valB;
}
else 
    throw new Exception("String cannot be converted to number");

上面的代码检查两个数字是否都可以转换为Int32 如果是,它将产生结果,否则引发异常。

尝试这个。

var a ="200309";
var b = "200317";

int comparison =  Console.WriteLine(string.Compare(a,b));

if(comparison>0)
{
    //Your Condition
}
else if(comparison<0)
{

}
else
{
}


此比较将为您提供 (1,0,-1) 0 的答案-您的比较匹配。 (1,-1)- 您的比较不匹配。

C# 不能那样工作。 尝试使用 int.Parse() a 和 b 并将它们作为整数进行比较。

另外,如果您必须比较 yy/mm/dd 日期,也许最好在比较之前将它们转换为 DateTime 以防止出现意外的逻辑问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM