Condividi tramite


Tagliare e rimuovere caratteri dalle stringhe in .NET

Se si analizza una frase in singole parole, è possibile che si verifichino parole con spazi vuoti (detti anche spazi vuoti) in entrambe le estremità della parola. In questo caso, è possibile utilizzare uno dei metodi trim nella System.String classe per rimuovere qualsiasi numero di spazi o altri caratteri da una posizione specificata nella stringa. Nella tabella seguente vengono descritti i metodi di taglio disponibili:

Nome del metodo Utilizzo
String.Trim Rimuove spazi vuoti o caratteri specificati in una matrice di caratteri dall'inizio e dalla fine di una stringa.
String.TrimEnd Rimuove i caratteri specificati in una matrice di caratteri dalla fine di una stringa.
String.TrimStart Rimuove i caratteri specificati in una matrice di caratteri dall'inizio di una stringa.
String.Remove Rimuove un numero specificato di caratteri da una posizione di indice specificata in una stringa.

Rifinire

È possibile rimuovere facilmente gli spazi vuoti da entrambe le estremità di una stringa usando il String.Trim metodo , come illustrato nell'esempio seguente:

string MyString = " Big   ";
Console.WriteLine($"Hello{MyString}World!");
string TrimString = MyString.Trim();
Console.WriteLine($"Hello{TrimString}World!");
//       The example displays the following output:
//             Hello Big   World!
//             HelloBigWorld!
Dim MyString As String = " Big   "
Console.WriteLine("Hello{0}World!", MyString)
Dim TrimString As String = MyString.Trim()
Console.WriteLine("Hello{0}World!", TrimString)
' The example displays the following output:
'       Hello Big   World!
'       HelloBigWorld!        

È anche possibile rimuovere i caratteri specificati in una matrice di caratteri dall'inizio e dalla fine di una stringa. Nell'esempio seguente vengono rimossi spazi vuoti, punti e asterischi:

using System;

public class Example
{
   public static void Main()
   {
      String header = "* A Short String. *";
      Console.WriteLine(header);
      Console.WriteLine(header.Trim( new Char[] { ' ', '*', '.' } ));
   }
}
// The example displays the following output:
//       * A Short String. *
//       A Short String
Module Example
    Public Sub Main()
        Dim header As String = "* A Short String. *"
        Console.WriteLine(header)
        Console.WriteLine(header.Trim({" "c, "*"c, "."c}))
    End Sub
End Module
' The example displays the following output:
'       * A Short String. *
'       A Short String

TrimEnd

Il String.TrimEnd metodo rimuove i caratteri dalla fine di una stringa, creando un nuovo oggetto stringa. A questo metodo viene passata una matrice di caratteri per specificare i caratteri da rimuovere. L'ordine degli elementi nella matrice di caratteri non influisce sull'operazione di taglio. Il taglio si arresta quando viene trovato un carattere non specificato nella matrice.

Nell'esempio seguente vengono rimosse le ultime lettere di una stringa utilizzando il TrimEnd metodo . In questo esempio la posizione del 'r' carattere e il 'W' carattere vengono invertiti per illustrare che l'ordine dei caratteri nella matrice non è rilevante. Si noti che questo codice rimuove l'ultima parola di MyString più parte del primo.

string MyString = "Hello World!";
char[] MyChar = {'r','o','W','l','d','!',' '};
string NewString = MyString.TrimEnd(MyChar);
Console.WriteLine(NewString);
Dim MyString As String = "Hello World!"
Dim MyChar() As Char = {"r", "o", "W", "l", "d", "!", " "}
Dim NewString As String = MyString.TrimEnd(MyChar)
Console.WriteLine(NewString)

Questo codice viene visualizzato He nella console.

Nell'esempio seguente viene rimossa l'ultima parola di una stringa usando il TrimEnd metodo . In questo codice, una virgola segue la parola Hello e poiché la virgola non è specificata nella matrice di caratteri da tagliare, il taglio termina alla virgola.

string MyString = "Hello, World!";
char[] MyChar = {'r','o','W','l','d','!',' '};
string NewString = MyString.TrimEnd(MyChar);
Console.WriteLine(NewString);
Dim MyString As String = "Hello, World!"
Dim MyChar() As Char = {"r", "o", "W", "l", "d", "!", " "}
Dim NewString As String = MyString.TrimEnd(MyChar)
Console.WriteLine(NewString)

Questo codice viene visualizzato Hello, nella console.

TrimStart

Il metodo String.TrimStart è simile al metodo String.TrimEnd, ad eccezione del fatto che crea una nuova stringa rimuovendo caratteri dall'inizio di un oggetto stringa esistente. Una array di caratteri viene passata al metodo TrimStart per specificare i caratteri da rimuovere. Come per il TrimEnd metodo , l'ordine degli elementi nella matrice di caratteri non influisce sull'operazione di taglio. Il taglio si arresta quando viene trovato un carattere non specificato nella matrice.

Nell'esempio seguente viene rimossa la prima parola di una stringa. In questo esempio la posizione del 'l' carattere e il 'H' carattere vengono invertiti per illustrare che l'ordine dei caratteri nella matrice non è rilevante.

string MyString = "Hello World!";
char[] MyChar = {'e', 'H','l','o',' ' };
string NewString = MyString.TrimStart(MyChar);
Console.WriteLine(NewString);
Dim MyString As String = "Hello World!"
Dim MyChar() As Char = {"e", "H", "l", "o", " "}
Dim NewString As String = MyString.TrimStart(MyChar)
Console.WriteLine(NewString)

Questo codice viene visualizzato World! nella console.

Rimuovi

Il String.Remove metodo rimuove un numero specificato di caratteri che iniziano in una posizione specificata in una stringa esistente. Questo metodo presuppone un indice in base zero.

Nell'esempio seguente vengono rimossi 10 caratteri da una stringa che inizia alla posizione cinque di un indice in base zero della stringa.

string MyString = "Hello Beautiful World!";
Console.WriteLine(MyString.Remove(5,10));
// The example displays the following output:
//         Hello World!
Dim MyString As String = "Hello Beautiful World!"
Console.WriteLine(MyString.Remove(5, 10))
' The example displays the following output:
'         Hello World!        

Sostituire

È anche possibile rimuovere un carattere o una sottostringa specificata da una stringa chiamando il String.Replace(String, String) metodo e specificando una stringa vuota (String.Empty) come sostituzione. Nell'esempio seguente vengono rimosse tutte le virgole da una stringa:

using System;

public class Example
{
   public static void Main()
   {
      String phrase = "a cold, dark night";
      Console.WriteLine($"Before: {phrase}");
      phrase = phrase.Replace(",", "");
      Console.WriteLine($"After: {phrase}");
   }
}
// The example displays the following output:
//       Before: a cold, dark night
//       After: a cold dark night
Module Example
    Public Sub Main()
        Dim phrase As String = "a cold, dark night"
        Console.WriteLine("Before: {0}", phrase)
        phrase = phrase.Replace(",", "")
        Console.WriteLine("After: {0}", phrase)
    End Sub
End Module
' The example displays the following output:
'       Before: a cold, dark night
'       After: a cold dark night