每当给我一个11位数的数字(如12345678901、82344678971等)时,我都希望将其分成4部分,即始终为5digits-4digits-1digit-1digit。所以:
12345678901-> 12345 6789 0 1
82344674971-> 82344 6749 7 1
我在SOF中看到了类似的问题,但它使用常规块;即相同的数字位数:Splitting a string / number every Nth Character / Number?
我想要一个函数,该函数将任何11位(长)整数作为参数,并按上述方式返回;从那里我可以得到我想要的任何块:例如,SplitInParts(1)将返回12345; SplitInParts(2)将返回6789; SplitInParts(3)将返回0; SplitInParts(4)将返回1。类似于82344674971:分别为82344、6749、7、1。
作为C#的新手,我无法实现如何通过C#执行上述操作。
最佳答案
在使用子字符串的地方使用此函数。
private string getMySubString(long value, int splitPart)
{
string str = value.ToString();
if (str.Length != 11) return "invalid number lenght";
string sub1 = str.Substring(0, 5);
string sub2 = str.Substring(5, 4);
string sub3 = str.Substring(9, 1);
string sub4 = str.Substring(10, 1);
switch (splitPart)
{
case 1:
return sub1;
case 2:
return sub2;
case 3:
return sub3;
case 4:
return sub4;
default:
return "Invalid part number";
}
}
使用“值”作为要分割的原始值,并使用“ splitPart”作为要提取的零件数。我希望这是你的要求
如果需要,可以将返回的字符串转换为Integer