每当给我一个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

10-07 19:30
查看更多