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