【问题标题】:C# Return substring starting from position past the end of stringC#从字符串末尾的位置开始返回子字符串
【发布时间】:2014-10-18 09:00:08
【问题描述】:

我正在尝试根据用户输入将字符串修剪成多个子字符串。 例如在Console ARG1 = 'DATABASE' ARG2 = '3,2,3' 该方法会将 DATABASE 转换为 newList (DAT,AB,ASE)

我目前正在处理的代码是

        string[] sizeSplit = ARG3.Split(',');
        for (int i = 0; i < sizeSplit.Length; i++)
        {
            string eachNumber = sizeSplit[i];
            int j = Int32.Parse(eachNumber);


            string splitString = pattern.Substring(0,j);

            seperatedWord.Add(splitString);
        }

但这仅适用于第一个子字符串,因为第二个和后面的子字符串需要是索引为 (pastPosition, j) 的子字符串。正如我在标题中所说。

谁能指出我这样做的方法? 提前谢谢你。

【问题讨论】:

    标签: c# for-loop substring indexof


    【解决方案1】:

    你需要跟踪位置

    int index = 0;
    for (int i = 0; i < sizeSplit.Length; i++)
    {
         string eachNumber = sizeSplit[i];
         int j = Int32.Parse(eachNumber);         
         string splitString = pattern.Substring(index,j);
         index += j;
         seperatedWord.Add(splitString);
    }
    

    【讨论】:

      【解决方案2】:

      像这样试试。

      添加新变量上一个。它具有子字符串的起始索引

      string ARG1  = "DATABASE"; string ARG2 = "3,2,3";
      int previous = 0;
      string[] sizeSplit = ARG2.Split(',');
      for (int i = 0; i < sizeSplit.Length; i++)
      {
          string eachNumber = sizeSplit[i];
          int j = Int32.Parse(eachNumber);
      
          string splitString = ARG1.Substring(previous, j);
          previous +=j;
          seperatedWord.Add(splitString);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-08
        • 1970-01-01
        • 1970-01-01
        • 2014-04-29
        • 1970-01-01
        • 2013-11-12
        • 2010-11-05
        相关资源
        最近更新 更多