【问题标题】:C# 2.0 function to get Second Word from string [closed]C# 2.0 函数从字符串中获取第二个单词 [关闭]
【发布时间】:2011-12-05 21:06:31
【问题描述】:

我需要编写一个函数来返回第一个单词之后的部分(第一个空格)。

例如,我在 C# 2.0 中有以下字符串。

string str = "M000. New Delhi"

现在我想编写一个函数,如果 str 被传递,则返回“新德里”。

请推荐!!

【问题讨论】:

  • 为什么选择“新德里”?我认为这不是一个“词”?
  • “新德里”是两个词。您要返回第二个单词(在本例中为“New”)还是删除第一个单词?第一个单词总是以点结尾吗?那个点之前总是只有一个单词吗?请更新您的问题,使其更加具体;作为回报,你会得到更好的答案。
  • 我是唯一一个在阅读样本字符串时发出牛声的人吗?
  • @VVS:因为“新德里”? ;)
  • @Guffa:因为我读到的“M000”或“Mooo”:-)

标签: c# string substring


【解决方案1】:

//替换“M000.”

str.Replace("M000. ",String.Empty);

【讨论】:

    【解决方案2】:
    • 第 1 步:取“”的第一个索引(空格)(5 代表你的字符串)
    • 第 2 步:将您在第 1 步中找到的数字增加 1(您的情况为 6)
    • 第 3 步:取给定字符串的子字符串,起始索引为 您在第 2 步中找到的数字 (针对您的情况的 str.Substring(6))

          private static string ReturnThePartOfAStringAfterTheFirstWordAndWhiteSpace(string str)
          {
              if(str.Contains(" "))
              {
                    int indexOfFirstWhiteSpace = str.IndexOf(" ");
                    string remainingStringAfterTheFirstWhiteSpace = str.Substring(indexOfFirstWhiteSpace + 1);
                    return remainingStringAfterTheFirstWhiteSpace;
              }
              else 
                    return str;
          }
      

    您可以对任何字符串使用此方法查找第一个空格之后的部分,即第一个单词之后的部分。

    【讨论】:

      【解决方案3】:
      string WhichIsBestDelhi(String str)
      {
        return "New Delhi";
      }
      

      无论传递什么字符串,这都有返回“新德里”的额外好处!

      【讨论】:

      • +1 这很好,但要求是 return "New Delhi" when passed "M000. New Delhi" - 请参阅我的回答 stackoverflow.com/questions/7736232/…
      • 但是当“M000。新德里”通过时,它确实返回“新德里”。或“M00。新德里”,或“哞,新!德里?”。
      • 非常正确。关于这个问题真正有趣的部分是当字符串不是“M000.New Delhi”时该怎么办 - 你的答案非常一致。
      【解决方案4】:

      我想写一个函数,如果 str 被传递,则返回“新德里”。

      给你。

      public string NewDehliFunction(string str)
      {
          if (str == "M000. New Delhi")
              return "New Delhi";
          else
              return "?"; // what happens here???
      }
      

      但最大的问题是“当它传递给其他东西时,你希望它做什么?”

      【讨论】:

      • 伙计们,我正在寻找不是专门用于新德里字符串的通用函数
      【解决方案5】:
       string  s = str.Split(new char[]{'.'})[1].Trim();
      

      【讨论】:

        【解决方案6】:

        获取第一个空格之后的字符串部分:

        string city = str.Substring(str.IndexOf(' ') + 1);
        

        即使字符串中没有空格,这也会给出结果。在这种情况下,IndexOf 方法将返回 -1,因此代码将返回整个字符串。如果在这种情况下您想要一个空字符串或一个异常,那么您首先将索引放入一个变量中,以便您可以检查该值:

        string city;
        int index = str.IndexOf(' ');
        if (index == -1) {
          throw new ArgumentException("Unable to find a space in the string.");
        } else {
          city = str.Substring(index + 1);
        }
        

        【讨论】:

          【解决方案7】:

          这一切都非常不清楚。最简单的情况:

          var result = str.Substring(6);
          

          更复杂:

          var result = str.Substring(str.IndexOf(". ")); // Possible off-by-one; can never remember
          

          【讨论】:

          • 这实际上是二分之一...结果将是". New Delhi"
          猜你喜欢
          • 1970-01-01
          • 2013-08-24
          • 2023-03-04
          • 2016-04-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多