2009-10-20 32 views
9

¿Hay alguna manera fácil de eliminar los 2 primeros y los 2 últimos caracteres de una cadena?¿Cómo eliminar los dos primeros y los últimos dos caracteres en una cadena?

tengo esta cadena:

\nTESTSTRING\n 

¿Cómo podría fácilmente eliminarlos?

+2

Tu pregunta es incorrecta. "\ n" es UN carácter (también se menciona en un comentario a continuación). –

+0

... a menos que no solo se use el carácter \ n sino la combinación de caracteres \ r \ n como salto de línea en sistemas que no sean * nix. – Guffa

+0

Si solo desea eliminar \ n caracteres, puede usar: 'str.Replace ('\ n', '');' –

Respuesta

46
str = str.Substring(2,str.Length-4) 

Por supuesto que hay que probar que la cadena contiene más de 4 caracteres antes de hacer esto. También en tu caso, parece que \ n es un único carácter de nueva línea. Si todo lo que quiere hacer es quitar iniciales y finales espacios en blanco, se debe utilizar

str.Trim() 

según lo sugerido por Charles

+0

Esta es la respuesta correcta a la pregunta, pero parece que el OP no se da cuenta de que \ n es el escape para una nueva línea. –

+0

La primera parte es correcta para mi uso. El segundo no es aplicable porque lo estoy usando en HTML, y usar .Trim() no elimina el espacio en absoluto. –

+1

@Manu SubString debe ser Substring. Es demasiado pequeño de una edición para que envíe – MobileMon

5

¿Usted intentó:

myString.Trim(); 
+3

\ n es UN char. –

2
myString = myString.SubString(2, myString.Length - 4); 
+1

Necesita un control para 'Longitud <4 '. –

+0

(myString == ESTSTRIN) == verdadero –

6
// Test string 
var str = "\nTESTSTRING\n"; 

// Number of characters to remove on each end 
var n = 2; 

// Slimmed string 
string slimmed; 

if (str.Length > n * 2) 
    slimmed = str.Substring(n, str.Length - (n * 2)); 
else 
    slimmed = string.Empty; 

// slimmed = "ESTSTRIN" 
0

Papuccino1,

Si crea un método de extensión de esta manera:

public static class StringEnumerator { 

    public static IEnumerable<String> GetLines(this String source) { 
     String line = String.Empty; 
     StringReader stringReader = new StringReader(source); 

     while ((line = stringReader.ReadLine()) != null) { 
      if (!String.IsNullOrEmpty(line)) { 
       yield return line; 
      } 
     } 
    } 
} 

su código se simplificará y será más seguro (no dependiendo del índice peligroso)):

class Program { 

    static void Main(string[] args) { 
     String someText = "\nTESTSTRING\n"; 
     String firstLine = someText.GetLines().First(); 
    } 
} 

espero que esto ayude,

Ricardo Lacerda Castelo Branco

0
public string RemoveFirstCharFromString(string Text) 
    { 
     string[] arr1 = new string[] { "The ", "A " }; 

     string Original = Text.ToLower(); 
     if (Text.Length > 4) 
     { 
      foreach (string match in arr1) 
      { 
       if (Original.StartsWith(match.ToLower())) 
       { 
        //Original = Original.Replace(match.ToLower(), "").TrimStart(); 
        Original = Original.Replace(Original.Substring(0, match.Length), "").TrimStart(); 
        return Original; 
       } 
      } 
     } 
     return Original; 
    } 
0
string Origional = TextBox1.Text.Replace(TextBox1.Text.Substring(0, 2), ""); 
Origional += Origional.Replace(Origional.Substring((Origional.Length - 2), 2), ""); 
+1

suele ser útil para proporcionar alguna explicación adicional en lugar de solo pegar algún código – Tivie

+0

¿No debería el original ser original? No puedo editar, porque aún estaría por debajo del límite de 6 caracteres. – WEFX

0

Su simple con Substring y Remove métodos, como se detalla en this link:

string mystring = "122014"; 

mystring = mystring.Substring(mystring.Length - 4); 
Response.Write(mystring.ToString()); 

//output:2014 


mystring = "122014"; 
string sub = mystring.Remove(mystring.Length - 4); 
Response.Write("<br>"); 
Response.Write(sub.ToString()); 

//output: 12 
Cuestiones relacionadas