【问题标题】:C# How to get Words From StringC#如何从字符串中获取单词
【发布时间】:2013-09-26 14:33:18
【问题描述】:

大家好,我一直在尝试从一个主字符串中检索一些其他字符串。

string src = "A~B~C~D";

如何分别检索字母?喜欢:

string a = "A";
string b = "B";
string c = "C";
string d = "D";

【问题讨论】:

  • 以 string.Split 开头,然后修剪您想要删除的字符。
  • ~ 的任何特别之处以及您尝试了什么

标签: c# regex vb.net string words


【解决方案1】:

您可以使用 Split(char c),它会返回一个由 ~ 符号分隔的子 strings 数组。

string src = "A~B~C~D";

string [] splits = src.Split('~');

显然,除非您事先知道字符串/单词的长度,否则您将无法随意将它们放入自己的变量中。但如果你知道它总是 4 个字,那么你可以这样做

string a = splits[0];
string b = splits[1];
string c = splits[2];
string d = splits[3];

【讨论】:

    【解决方案2】:

    试试这个。它将使用所有非字母数字字符拆分您的字符串。

    string s = "A~B~C~D";
    string[] strings = Regex.Split(s, @"\W|_");
    

    【讨论】:

      【解决方案3】:

      请试试这个

      string src = "A~B~C~D"
      //
      // Split string on spaces.
      // ... This will separate all the words.
      //
      string[] words = src .Split('~');
      foreach (string word in words)
      {
          Console.WriteLine(word);
      }
      

      【讨论】:

        【解决方案4】:

        你可以这样做:

        string src = "A~B~C~D";
        
        string[] strArray = src.Split('~');
        
        string a = strArray[0];   
        string b = strArray[1];   
        string c = strArray[2];
        string d = strArray[3];
        

        【讨论】:

          【解决方案5】:
          string src = "A~B~C~D";
          string[] letters = src.Split('~');
          
          foreach (string s in letters)
          {
              //loop through array here...
          }
          

          【讨论】:

          • 糟糕 - 我认为需要更快地输入。我按下提交时发布的第 5 个答案 :)
          【解决方案6】:

          考虑...

          string src = "A~B~C~D";
          string[] srcList = src.Split(new char[] { '~' });
          string a = srcList[0];
          string b = srcList[1];
          string c = srcList[2];
          string d = srcList[3];
          

          【讨论】:

            【解决方案7】:
            string words[]=Regex.Matches(input,@"\w+") 
                                .Cast<Match>()
                                .Select(x=>x.Value)
                                .ToArray();
            

            \w 匹配单个单词,即 A-Z 或 a-z 或 _ 或数字

            +是一个量词,它匹配前面的 char 1 多次

            【讨论】:

            • @JeroenvanLangen 他编辑了他的问题...他最初的问题是从字符串中选择所有 单词。
            • omg,谢谢你们:O 在这么短的时间内得到这么多答案。哇 !!我从来没有见过这样的东西:))
            【解决方案8】:

            我喜欢这样做:

                    List<char> c_list = new List<char>();
                    string src = "A~B~C~D";
                    char [] c = src.ToCharArray();
                    foreach (char cc in c)
                    {
                        if (cc != '~')
                            c_list.Add(cc);
                    }
            

            【讨论】:

              猜你喜欢
              • 2012-11-25
              • 2018-04-10
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-12-27
              相关资源
              最近更新 更多