Como obter a substring em c #?

Eu posso pegar os três primeiros personagens com a function abaixo.

No entanto, como posso obter a saída dos últimos cinco caracteres ( três ) com function Substring() . Ou outra function de string será usada?

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

Se sua string de input puder ter menos de cinco caracteres, você deve estar ciente de que string.Substring lançará um ArgumentOutOfRangeException se o argumento startIndex for negativo.

Para resolver esse problema em potencial, você pode usar o seguinte código:

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

Ou mais explicitamente:

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

Se você puder usar methods de extensão, isso será feito de maneira segura, independentemente do tamanho da 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; } 

E para usá-lo:

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

Substring (0, 3) Retorna a substring dos primeiros 3 caracteres. //1

Substring (3, 3) Retorna a substring dos segundos 3 caracteres. //Dois

Substring (6) Retorna a substring de todos os caracteres após os primeiros 6. // Três

Uma maneira é usar a propriedade Length da string como parte da input para Substring :

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

Aqui está um método de extensão rápida que você pode usar que imita a syntax do PHP. Inclua AssemblyName.Extensions no arquivo de código no qual você está usando a extensão.

Então você poderia chamar: input.SubstringReverse (-5) e ele retornará “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)); } } 

}

por exemplo

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

Este retorno “substring”

Fonte de amostra substring C #:

maneira simples de fazer isso em uma linha de código seria esta

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

e aqui algumas informações sobre o Operador? :

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

Substring. Este método extrai strings. Requer a localização da subseqüência (um índice inicial, um comprimento). Em seguida, ele retorna uma nova string com os caracteres desse intervalo.

Veja um pequeno exemplo:

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

Saída: Substring: One

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