C#2.0函数从字符串中获取第二个字

时间:2011-10-12 06:43:20

标签: c# string substring

我需要编写一个函数,它会在第一个单词(第一个空格)之后返回给我。

例如,我在C#2.0中得到了以下字符串。

string str = "M000. New Delhi"

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

请建议!!

7 个答案:

答案 0 :(得分:8)

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

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);
}

答案 1 :(得分:4)

string WhichIsBestDelhi(String str)
{
  return "New Delhi";
}

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

答案 2 :(得分:2)

 string  s = str.Split(new char[]{'.'})[1].Trim();

答案 3 :(得分:2)

  

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

你走了。

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

但最重要的问题是“当传递别的东西时你想要它做什么?”

答案 4 :(得分:1)

  • 第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;
        }
    

您可以将此方法用于任何字符串,以便在第一个空格后找到该部分,这意味着第一个单词之后的部分。

答案 5 :(得分:0)

这一点都很不清楚。最简单的情况:

var result = str.Substring(6);

更复杂:

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

答案 6 :(得分:-1)

//替换“M000。”

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