如何获取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
属性作为Substring
input的一部分:
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