如何获取C#中的子string?

我可以用下面的函数得到前三个字符。

但是,如何使用Substring()函数获取最后五个字符( )的输出。 或者其他的string函数将被使用?

谢谢。

 static void Main() { string input = "OneTwoThree"; // Get first three characters string sub = input.Substring(0, 3); Console.WriteLine("Substring: {0}", sub); // Output One. } 

如果您的inputstring可能less于五个字符,那么您应该知道,如果startIndex参数为负,则string.Substring将引发ArgumentOutOfRangeException

要解决这个潜在的问题,你可以使用下面的代码:

 string sub = input.Substring(Math.Max(0, input.Length - 5)); 

或者更明确地说:

 public static string Right(string input, int length) { if (length >= input.Length) { return input; } else { return input.Substring(input.Length - length); } } 
 string sub = input.Substring(input.Length - 5); 

如果您可以使用扩展方法,则无论string长度如何,都可以以安全的方式进行:

 public static string Right(this string text, int maxLength) { if (string.IsNullOrEmpty(text) || maxLength <= 0) { return string.Empty; } if (maxLength < text.Length) { return text.Substring(text.Length - maxLength); } return text; } 

并使用它:

 string sub = input.Right(5); 

一种方法是使用string的Length属性作为Substringinput的一部分:

 string sub = input.Substring(input.Length - 5); // Retrieves the last 5 characters of input 

下面是一个可以用来模仿PHP语法的快速扩展方法。 将AssemblyName.Extensions包括到您在其中使用扩展的代码文件中。

然后你可以调用:input.SubstringReverse(-5),它将返回“三”。

命名空间AssemblyName.Extensions {

 public static class StringExtensions { /// <summary> /// Takes a negative integer - counts back from the end of the string. /// </summary> /// <param name="str"></param> /// <param name="length"></param> public static string SubstringReverse(this string str, int length) { if (length > 0) { throw new ArgumentOutOfRangeException("Length must be less than zero."); } if (str.Length < Math.Abs(length)) { throw new ArgumentOutOfRangeException("Length cannot be greater than the length of the string."); } return str.Substring((str.Length + length), Math.Abs(length)); } } 

}

 static void Main() { string input = "OneTwoThree"; //Get last 5 characters string sub = input.Substring(6); Console.WriteLine("Substring: {0}", sub); // Output Three. } 

子string(0,3)返回前3个字符的子string。 //一

子string(3,3)返回第二个3个字符的子string。 //二

子string(6)返回所有字符后的第一个6. //三

例如

  string str = null; string retString = null; str = "This is substring test"; retString = str.Substring(8, 9); 

这个返回“子串”

C#子串样例源码:

在一行代码中这样做的简单方法就是这样

 string sub = input.Substring(input.Length > 5 ? input.Length - 5 : 0); 

这里有关于运营商的一些信息? :

 string input = "OneTwoThree"; (if input.length >5) { string str=input.substring(input.length-5,5); } 

子。 此方法提取string。 它需要子string的位置(一个起始索引,一个长度)。 然后它返回一个新的string与该范围内的字符。

看一个小例子:

 string input = "OneTwoThree"; // Get first three characters. string sub = input.Substring(0, 3); Console.WriteLine("Substring: {0}", sub); 

输出:子串:一个

  // Get first three characters string sub = input.Substring(0, 3); Console.WriteLine("Substring: {0}", sub); // Output One. string sub = input.Substring(6, 5); Console.WriteLine("Substring: {0}", sub); //You'll get output: Three