检查字符串是否在两个字母之间

时间:2012-01-05 04:32:41

标签: c# string

我正在努力将VIN数字解码为有用的信息,而对于国家,他们会提供一系列双字母(EG:SA-SM是英国)。如何检查SG是否介于SA和SM之间?我正在考虑十六进制,但由于它超过了E,因此无法转换为十六进制。

4 个答案:

答案 0 :(得分:6)

if (String.Compare("SG","SA") > 0 && String.Compare("SG","SM") < 0)
{  // SG between SA and SM
}

忽略大小写

if (String.Compare("SG","SA",true) > 0 && String.Compare("SG","SM",true) < 0)
{  // SG between SA and SM
}

您还可以使用CurrentCulture,CurrentCultureIgnoreCase,InvariantCulture,InvariantCultureIgnoreCase,Ordinal,OrdinalIgnoreCase(msdn docs

之一
if (String.Compare("SG","SA",CurrentCultureIgnoreCase) > 0 && String.Compare("SG","SM",CurrentCultureIgnoreCase) < 0)
{  // SG between SA and SM
}

答案 1 :(得分:3)

value[0] == 'S' && value[1] >= 'A' && value[1] <= 'M'

答案 2 :(得分:2)

如果你坚持使用数字,那么hex不是唯一的基础:base-26怎么样?

var str = "SK";
var base26 = 26*(str[0]-'A')+(str[1]-'A');

按字典顺序比较字符串没有任何问题,只要两个字符串的长度相同。

答案 3 :(得分:0)

以这种方式尝试:

string test= "SASGSM";
if(test.IndexOf("SG") > -1) {

 //your action

}