Condividi tramite


Confronto di stringhe

.NET Framework fornisce numerosi metodi per confrontare i valori delle stringhe. Nella tabella che segue sono elencati e descritti i metodi di confronto tra valori.

Nome del metodo Utilizzo

String.Compare

Consente di confrontare i valori di due stringhe. Viene restituito un valore integer.

String.CompareOrdinal

Consente di confrontare due stringhe indipendentemente dalla lingua locale. Viene restituito un valore integer.

String.CompareTo

Consente di confrontare l'oggetto stringa corrente con un'altra stringa. Viene restituito un valore integer.

String.StartsWith

Consente di determinare se una stringa inizia con la stringa passata. Viene restituito un valore Boolean.

String.EndsWith

Consente di determinare se una stringa finisce con la stringa passata. Viene restituito un valore Boolean.

String.Equals

Consente di determinare se due stringhe sono identiche. Viene restituito un valore Boolean.

String.IndexOf

Consente di restituire la posizione di indice di un carattere o di una stringa, a partire dall'inizio della stringa esaminata. Viene restituito un valore integer.

String.LastIndexOf

Consente di restituire la posizione di indice di un carattere o di una stringa, a partire dalla fine della stringa esaminata. Viene restituito un valore integer.

Compare

Il metodo String.Compare fornisce un modo completo per confrontare l'oggetto stringa corrente con un altro oggetto o un'altra stringa. Il metodo è sensibile alla lingua. È possibile utilizzare questa funzione per confrontare due stringhe o le sottostringhe di due stringhe. Vengono inoltre forniti overload per considerare o ignorare la distinzione tra maiuscole e minuscole e la differenza di lingua. Nella tabella che segue sono illustrati i tre valori integer che possono essere restituiti da questo metodo.

Tipo di valore Condition

Un numero integer negativo

strA è minore di strB.

0

strA è uguale a strB.

Un numero integer positivo

-oppure-

1

L’istanza è maggiore di valore.

-oppure-

value è un riferimento null (Nothing in Visual Basic).

Nell'esempio riportato di seguito viene utilizzato il metodo Compare per determinare i valori relativi di due stringhe.

Dim MyString As String = "Hello World!"
Console.WriteLine([String].Compare(MyString, "Hello World?"))
string MyString = "Hello World!";      
Console.WriteLine(String.Compare(MyString, "Hello World?"));

Nella console verrà visualizzato -1.

Per impostazione predefinita, l'esempio precedente dipende dalla lingua impostata. Per eseguire un confronto di stringhe indipendente dalla lingua, utilizzare un overload del metodo String.Compare che consenta di specificare la lingua da utilizzare tramite un parametro culture. Per un esempio di come utilizzare il metodo String.Compare per eseguire un confronto indipendente dalla lingua, vedere Esecuzione di confronti di stringhe indipendenti dalla lingua.

CompareOrdinal

Il metodo String.CompareOrdinal consente di confrontare due oggetti stringa senza considerare la lingua locale. I valori restituiti di questo metodo sono identici a quelli restituiti dal metodo Compare, indicati nella tabella precedente.

Nell'esempio che segue viene utilizzato il metodo CompareOrdinal per confrontare i valori di due stringhe.

Dim MyString As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(MyString, "hello world!"))
string MyString = "Hello World!";      
Console.WriteLine(String.CompareOrdinal(MyString, "hello world!"));

Nella console verrà visualizzato -32.

CompareTo

Il metodo String.CompareTo consente di confrontare la stringa incapsulata dall'oggetto stringa corrente con un altro oggetto o stringa. I valori restituiti di questo metodo sono identici a quelli restituiti dal metodo Compare, indicati nella tabella precedente.

Nell'esempio che segue viene utilizzato il metodo CompareTo per confrontare l'oggetto MyString con l'oggetto OtherString.

Dim MyString As String = "Hello World"
Dim OtherString As String = "Hello World!"
Dim MyInt As Integer = MyString.CompareTo(OtherString)
Console.WriteLine(MyInt)
String MyString = "Hello World";
String OtherString = "Hello World!";
int MyInt = MyString.CompareTo(OtherString);    
Console.WriteLine( MyInt );

Nella console verrà visualizzato 1.

Per impostazione predefinita, tutti gli overload del metodo String.CompareTo eseguono confronti che dipendono dalla lingua e che operano la distinzione tra maiuscole e minuscole. Nessun overload di questo metodo consente di eseguire un confronto indipendente dalla lingua. Ai fini della chiarezza, è consigliabile utilizzare invece il metodo String.Compare, specificando CultureInfo.CurrentCulture per le operazioni che dipendono dalla lingua e CultureInfo.InvariantCulture per le operazioni indipendenti dalla lingua. Per un esempio di come utilizzare il metodo String.Compare per eseguire confronti dipendenti e indipendenti dalla lingua, vedere Esecuzione di confronti di stringhe indipendenti dalla lingua.

Equals

Il metodo String.Equals consente di determinare con facilità se due stringhe sono identiche. Con questo metodo, con distinzione tra maiuscole e minuscole, viene restituito un valore Boolean True o False. Il metodo può essere utilizzato da una classe esistente, come illustrato nell'esempio riportato di seguito. Nell'esempio che segue viene utilizzato il metodo Equals per determinare se un oggetto stringa contiene la frase "Hello World".

Dim MyString As String = "Hello World"
Console.WriteLine(MyString.Equals("Hello World"))
string MyString = "Hello World";
Console.WriteLine(MyString.Equals("Hello World"));

Nella console verrà visualizzato True.

Il metodo è utilizzabile come metodo statico. Nell'esempio che segue due oggetti stringa vengono confrontati utilizzando un metodo statico.

Dim MyString As String = "Hello World"
Dim YourString As String = "Hello World"
Console.WriteLine(String.Equals(MyString, YourString))
string MyString = "Hello World";
string YourString = "Hello World";
Console.WriteLine(String.Equals(MyString, YourString));

Nella console verrà visualizzato True.

StartsWith e EndsWith

È possibile utilizzare il metodo String.StartsWith per determinare se un oggetto stringa inizia con gli stessi caratteri inclusi in un'altra stringa. Con questo metodo, in cui viene rilevata la distinzione tra maiuscole e minuscole, viene restituito true se l'oggetto stringa corrente inizia con la stringa passata e false in caso contrario. Nell'esempio che segue questo metodo viene utilizzato per determinare se un oggetto stringa inizia con "Hello".

Dim MyString As String = "Hello World"
Console.WriteLine(MyString.StartsWith("Hello"))
string MyString = "Hello World";
Console.WriteLine(MyString.StartsWith("Hello"));

Nella console verrà visualizzato True.

Il metodo String.EndsWith consente di confrontare una stringa passata con i caratteri finali dell'oggetto stringa corrente, con la restituzione di un valore Boolean. Nell'esempio che segue viene verificata la fine di una stringa utilizzando il metodo EndsWith.

Dim MyString As String = "Hello World"
Console.WriteLine(MyString.EndsWith("Hello"))
string MyString = "Hello World";    
Console.WriteLine(MyString.EndsWith("Hello"));

Nella console verrà visualizzato False .

IndexOf e LastIndexOf

È possibile utilizzare il metodo String.IndexOf per determinare la posizione della prima occorrenza di un carattere specifico all'interno di una stringa. Con questo metodo, in cui viene rilevata la distinzione tra maiuscole e minuscole, viene avviato il conteggio dall'inizio di una stringa e viene restituita la posizione di un carattere passato utilizzando un indice a base zero. Se non è possibile trovare il carattere, verrà restituito il valore -1.

Nell'esempio di codice riportato di seguito viene utilizzato il metodo IndexOf per cercare la prima occorrenza del carattere "l" in una stringa.

Dim MyString As String = "Hello World"
Console.WriteLine(MyString.IndexOf("l"c))
string MyString = "Hello World";
Console.WriteLine(MyString.IndexOf('l'));

Nella console verrà visualizzato 2.

Il metodo String.LastIndexOf è simile a String.IndexOf, fatta eccezione per il fatto che con esso viene restituita la posizione dell'ultima occorrenza di un carattere specifico all'interno di una stringa. In questo metodo è rilevante la distinzione tra maiuscole e minuscole e viene utilizzato un indice a base zero.

Nell'esempio di codice riportato di seguito viene utilizzato il metodo LastIndexOf per cercare l'ultima occorrenza del carattere "l" in una stringa.

Dim MyString As String = "Hello World"
Console.WriteLine(MyString.LastIndexOf("l"c))
string MyString = "Hello World";    
Console.WriteLine(MyString.LastIndexOf('l'));

Nella console verrà visualizzato 9.

Entrambi i metodi sono utili quando utilizzati in combinazione con il metodo String.Remove. È possibile utilizzare il metodo IndexOf o LastIndexOf per recuperare la posizione di un carattere e quindi fornirla al metodo Remove allo scopo di rimuovere un carattere o una parola che inizia con quel carattere.

Vedere anche

Altre risorse

Operazioni di base sulle stringhe
Esecuzione di operazioni sulle stringhe indipendenti dalla lingua