【问题标题】:Isolate characters from string从字符串中分离字符
【发布时间】:2012-12-31 05:10:44
【问题描述】:

所以我今天有一个名为“nick_george_james”的字符串 看起来像这样

string today = "_nick__george__james_";

如何将'_'之间的文本隔离成一个新字符串?我想把这 3 个名字分成单独的字符串,这样最后我就有了 name1、name2、name3 的值 nick、george 和 james

我的应用程序是用 c# 编写的

【问题讨论】:

    标签: c# .net string character


    【解决方案1】:

    使用string.Split

    string[] array = today.Split('_');
    

    编辑您的问题后,我意识到您的字符串中有多个_。您应该尝试以下方法。

    string[] array = today.Split("_".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
    

    或者

    string[] array = today.Split(new []{"_"}, StringSplitOptions.RemoveEmptyEntries);
    

    稍后您的array 将包含:

    array[0] = "nick";
    array[1] = "george";
    array[2] = "james";
    

    【讨论】:

    • 可能想用 StringSplitOptions 调用重载来指定 RemoveEmptyEntries。
    • @TylerOhlsen,刚刚编辑了我的答案以发布相同的内容:)
    【解决方案2】:
    string[] array = today.Split('_');
    name1=array[0];
    name2=array[1];
    name3=array[2];
    

    【讨论】:

      【解决方案3】:

      想到了除 string.Split 之外的其他想法。

      string today = "_nick__george__james_";
      
      //Change value nNoofwordstobeFound  accordingly
      
      int nNoofwordstobeFound = 3;
      int nstartindex = 0;
      int nEndindex = 0;
      int i=1;
      while (i <= nNoofwordstobeFound)
      {
          Skip:
          nstartindex = today.IndexOf("_",nEndindex);
          nEndindex = today.IndexOf("_", nstartindex + 1);
      
          string sName = today.Substring(nstartindex + 1, nEndindex - (nstartindex + 1));
          if (sName == "")
          {
              goto Skip;
          }
          else
          {
              //Do your code
              //For example                 
              string abc=  sName;    
          }
      
          i++;
      }
      

      我仍然更喜欢 string.split 方法。

      【讨论】:

      • 使用'break;'而不是转到。尽管编写自己的拆分的想法很愚蠢
      【解决方案4】:
      string[] nameArray = today.Split('_');
      

      在这里,您将获得一组名称。您可以通过指定 nameArray 的索引位置来获取每个名称。

      ie 现在 nameArray 包含如下值

      nameArray[0] = "nick", nameArray[1] = "george", nameArray[2] = "james"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-23
        • 1970-01-01
        • 2018-07-13
        • 2016-11-27
        • 1970-01-01
        相关资源
        最近更新 更多