我有八个字符的字符串,如下所示。最后一列中存在的零标识为pr,pa,fo或它的类型记录:
01020304
01020300
01020000
01000000
我已编码以下内容但对我来说看起来很笨拙。
if ( id.Substring(2) == "000000") {
// pr record
} else if ( id.Substring(4) == "0000") {
// pa record
} else if ( id.Substring(6) == "00") {
// fo record
} else {
// it record
}
有人能想到一种更简洁的方法来编码吗?
答案 0 :(得分:3)
与你所拥有的不同,只是更容易理解的IMO。
const string PR = "000000";
const string PA = "0000";
const string FO = "00";
if (id.EndsWith(PR))
{
// pr record
}
else if(id.EndsWith(PA))
{
// pa record
}
else if (id.EndsWith(FO))
{
// fo record
}
else
{
// it record
}
答案 1 :(得分:1)
测试字符串没有错:
endswith
switch(trailingZeros(id)) { case 0: ... }
答案 2 :(得分:1)
按value.TrimEnd('0').Length
?
答案 3 :(得分:1)
您可能需要查看Filehelpers库 - 它有各种基础设施来读取和处理记录,包括确定不同记录类型的方法 - 请参阅“Multirecords”
注意:Filehelpers主网站基于此库的2.0版本。 public repository中存在较新版本。在任何一种情况下,我都建议抓取库的源代码,因为我没有看到这个库的新开发方面的大量活动。