¿Cómo obtener la subcadena en C #?

Puedo obtener los primeros tres caracteres con la función a continuación.

Sin embargo, ¿cómo puedo obtener la salida de los últimos cinco caracteres ( Tres ) con la función Substring() ? ¿O se usará otra función de cuerda?

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

Si su cadena de entrada puede tener menos de cinco caracteres, entonces debe tener en cuenta que string.Substring arrojará una ArgumentOutOfRangeException si el argumento startIndex es negativo.

Para resolver este problema potencial, puede usar el siguiente código:

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

O más explícitamente:

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

Si puede usar métodos de extensión, esto lo hará de forma segura, independientemente de la longitud de la cadena:

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

Y para usarlo:

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

Subcadena (0, 3) Devuelve la subcadena de los primeros 3 caracteres. //Uno

Subcadena (3, 3) Devuelve la subcadena de los segundos 3 caracteres. //Dos

Subcadena (6) Devuelve la subcadena de todos los caracteres después del primero 6. // Tres

Una forma es usar la propiedad Length de la cadena como parte de la entrada a la Substring :

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

Aquí hay un método de extensión rápida que puede usar que imita la syntax de PHP. Incluya AssemblyName.Extensions al archivo de código en el que está utilizando la extensión.

Entonces podría llamar a: input.SubstringReverse (-5) y devolverá “Three”.

namespace AssemblyName.Extensions {

 public static class StringExtensions { ///  /// Takes a negative integer - counts back from the end of the string. ///  ///  ///  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)); } } 

}

p.ej

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

Esta vuelta “subscring”

Fuente de muestra de la subcadena C #:

una forma simple de hacer esto en una línea de código sería este

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

y aquí algunas informaciones sobre el operador? :

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

Subcadena. Este método extrae cadenas. Requiere la ubicación de la subcadena (un índice de inicio, una longitud). A continuación, devuelve una nueva cadena con los caracteres en ese rango.

Vea un pequeño ejemplo:

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

Salida: Subcadena: Uno

  // 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