如何识别字符串不应该以S和V开头

问题描述 投票:0回答:3

我想确认字符串不是以 V 和 S 开头。我使用下面的代码来查找,但它总是转到错误部分。

if (!Smc.StartsWith("V") || !Smc.StartsWith("S"))
{
    RetStr = "1:Invalid String";
    return RetStr;
}

有人可以帮助我吗?

c# .net c#-4.0
3个回答
0
投票

如果您想在字符串以 V 或 S 开头时转到错误部分,您可以这样做..

if ( Smc.StartsWith("V") || Smc.StartsWith("S"))
{
    RetStr = "1:Invalid String";
    return RetStr;
}

0
投票

现在,您的

if
状况本质上是:

“如果 Smc 不是以 V 开头,或者如果 Smc 不是以 S 开头”

由于字符串不能同时以 V 和 S 开头,因此至少其中一个陈述始终为真。

您需要删除

not
运算符,如下所示:

 if (Smc.StartsWith("V") || Smc.StartsWith("S"))
 {
     RetStr = "1:Invalid String";
     return RetStr;
 }

0
投票

IF 语句:

  if (!Smc.StartsWith("V") || !Smc.StartsWith("S"))

被解释为 smc 不以“V”开头 OR smc 不以“S”开头

如果 smc 以 S 开头,那么它不是以 V 开头。所以第一个条件为真。 如果 smc 以 V 开头,则它不以 S 开头,因此第二个条件为真。 如果 smc 以任何其他字符开头,则这两个条件均成立。

因此它总是执行 return 块。

© www.soinside.com 2019 - 2024. All rights reserved.