2009-10-20 29 views
9

C'è un modo semplice per rimuovere i primi 2 e gli ultimi 2 caratteri in una stringa?Come rimuovere i primi due e gli ultimi due caratteri in una stringa?

ho questa stringa:

\nTESTSTRING\n 

Come potrei facilmente cancellarli?

+2

La tua domanda è sbagliata. "\ n" è UNO carattere (indicato anche in un commento qui sotto). –

+0

... a meno che non sia solo il carattere \ n, ma in realtà la combinazione di caratteri \ r \ n utilizzata come interruzione di riga su sistemi non * nix. – Guffa

+0

Se si desidera rimuovere \ n caratteri, è possibile utilizzare: 'str.Replace ('\ n', '');' –

risposta

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

Naturalmente è necessario verificare che la stringa contiene più di 4 caratteri prima di fare questo. Anche nel tuo caso sembra che \ n sia un singolo carattere di nuova riga. Se tutto quello che vogliamo fare è rimuovere le iniziali e finali spazi bianchi, è necessario utilizzare

str.Trim() 

come suggerito da Charles

+0

Questa è la risposta corretta alla domanda, ma sembra che l'OP non si renda conto che \ n è l'escape per una nuova riga. –

+0

La prima parte è corretta per il mio uso. Il secondo non è applicabile perché lo sto usando su HTML e l'uso di. Trr() non rimuove affatto lo spazio bianco. –

+1

@Manu Sottostringa dovrebbe essere Sottostringa. È troppo piccolo di una modifica per me per inviare – MobileMon

5

Hai provato:

myString.Trim(); 
+3

\ n è UNO carattere. –

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

Richiede un controllo per 'Lunghezza <4'. –

+0

(myString == ESTSTRIN) == true –

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,

Se si crea un metodo di estensione in questo modo:

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

il codice sarà semplificato e sarà più sicuro (non dipende dall'indice pericoloso):

class Program { 

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

Spero che questo aiuta,

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

di solito è utile per fornire alcune spiegazioni aggiuntive invece di incollare solo il codice – Tivie

+0

Oral non dovrebbe essere originale? Non posso modificare, perché sarei ancora al di sotto del limite di 6 caratteri. – WEFX

0

la sua semplice con Substring e Remove metodi, come dettagliato nella 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 
Problemi correlati