Leistungen
Leistungen
Überblick
Leistungsangebot
Kernkompetenzen
Schulungsthemen
In-House-Schulungen
Offene .NET-Seminare
Offene WPS-Seminare
Beratung
Coaching
Support
Softwareentwicklung
Entwickler-Vermittlung
.NET/Visual Studio
TFS/ALM/Scrum
Webprogrammierung
PowerShell
Konditionen
Anfrage/Kontakt
Beratung/Coaching
Beratung/Coaching
Beratungsthemen
Coaching
Unsere Berater
Referenzkunden
Konditionen
Angebotsanfrage
In-House-Schulungen
In-House-Schulungen
Überblick
Themen/Fachgebiete
Schulungskonfigurator
Konzepte
.NET/Visual Studio
C#
VB.NET
ASP.NET
Moderne Webanwendungen
TFS/ALM/Scrum
PowerShell
Konferenzvortraege
Referenzkunden
Unsere Trainer
Konditionen
Angebotsanfrage
Offene Schulungen
Offene Schulungen
Überblick .NET-Seminare
.NET/C#-Basisseminar
WPF (Desktop)
ASP.NET/AJAX (Web)
WCF/WF (SOA)
ADO.NET/EF (Data)
Windows PowerShell
.NET, C#, VB, Visual Studio
.NET, C#, VB, Visual Studio
Startseite
Beratung/Training
Offene .NET-Seminare
Einführung
Lexikon
Artikel
Bücher
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
World Wide Wings Demo
Codebeispiele
Scripting
ASP.NET
.NET 2.0
.NET 3.0/3.5
.NET 4.0/4.5
Community
Forum
Kommerzielle Leistungen
ASP.NET
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
PowerShell
PowerShell
Überblick
Beratung
In-House-Schulungen
Öffentliche Schulungen
Codebeispiele
Commandlet Extensions
Offene PowerShell-Seminare
Inhouse-Seminare
Windows
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Windows Scripting
Windows Scripting
Startseite
Lexikon
FAQ
Buecher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
Scripting-Tools
WSH-Editoren
Codebeispiele
ASP.NET
.NET-Scripting
Forum
Links
Kommerzielle Leistungen
Service
Service
Website-FAQ
Anmeldung/Login
Leser-Registrierung
Gast-Registrierung
Nachrichten/RSS
Newsletter
Foren
Weblog
Lexikon
Downloads
Support
Kontakt
Literaturtipps
Publikationen
Publikationen
Redaktionsbüro
Bücher
Fachartikel
Leser-Portal
Autoren gesucht!
Rezensionen
Über uns
Über uns
Holger Schwichtenberg
Team
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Site Map
Weitere Websites
Tag Cloud
Impressum
Rechtliches

Beispiele zum String-Vergleich
Codebeispiel für Visual Basic .NET (VB.NET) und CSharp (C#)

Liste aller Codebeispiele

Beispiele zum String-Vergleich

Ein Beispiel zum Einsatz der Klasse System.String aus der .NET-Klassenbibliothek.

Autor: Dr. Holger Schwichtenberg 

Beschreibung

Die Methode Compare(s1, s2) vergleicht zwei Strings. Im Standard werden Groß- und Kleinschreibung berücksichtigt. Dies kann mit einem dritten Parameter abgeschaltet werden: String.Compare(s1, s1a, True). Compare() liefert 0, 1 und -1 zurück und zeigt damit nicht nur an, ob zwei Strings verschieden sind, sondern auch ob der erste String lexikalisch kleiner (-1) oder größer ist als der zweite (1). Bei dem Vergleich wird die aktuelle Ländereinstellung (Thread.CurrentThread.CurrentCulture) berücksichtigt.
Die von System.Object geerbte Methode Equals() (Beispiel: s1.Equals(s2)) liefert lediglich ein True oder False. Der Vergleich ist immer case-sensitive und die Ländereinstellung ist irrelevant.

Programmcodebeispiele Visual Basic .NET (VB.NET)

' ============================
' .NET-Code-Beispiel in Visual Basic .NET
' String-Vergleiche
' ===========================
  Sub string_vergleich()
   Dim s1 As String
   Dim s1a As String
   Dim s2 As String
   Dim i As Integer

   s1 = "Holger"
   s1a = "holger"
   s2 = "Hans"

   ' --- String-Vergleich ohne Berücksichtigung der aufrufenden Instanz
   ' (als aufrufende Instanz wird hier der Klassenname ("String") verwendet)

   '1. Die Strings sind gleich (Rückgabewert: 0)
   i = String.Compare(s1, s1)
   Console.WriteLine("1. '" & s1 & "' verglichen mit '" & s2 & "' ergibt: ")
   Console.WriteLine(i & " (Die Strings sind gleich)" & vbNewLine)

   '2. Die Strings sind nicht gleich, da defaultmäßig Groß- und Kleinschreibung berücksichtigt wird
   ' (Rückgabewert: 1, d.h.: s1 ist größer als s1a)
   i = String.Compare(s1, s1a)
   Console.WriteLine("2. s1 verglichen mit s1a ergibt: ")
   Console.WriteLine(i & vbNewLine)

   '3. Die Strings sind gleich, da Groß- und Kleinschreibung nicht berücksichtigt wird
   ' (Rückgabewert: 0)
   i = String.Compare(s1, s1a, True)
   Console.WriteLine("3. s1 verglichen mit s1a ergibt: ")
   Console.WriteLine(i & vbNewLine)

   '4. Die Strings sind gleich, da Groß- und Kleinschreibung berücksichtigt wird
   ' (Rückgabewert: 1, d.h.: s1 ist größer als s1a)
   i = String.Compare(s1, s1a, False)
   Console.WriteLine("4. s1 verglichen mit s1a ergibt: ")
   Console.WriteLine(i & vbNewLine)

   '5. String s1 ist größer als String s2
   ' (Rückgabewert: 1)
   i = String.Compare(s1, s2)
   Console.WriteLine("5. s1 verglichen mit s2 ergibt: ")
   Console.WriteLine(i & vbNewLine)

   '6. String s2 ist kleiner als String s1
   ' (Rückgabewert: -1)
   i = String.Compare(s2, s1)
   Console.WriteLine("6. s2 verglichen mit s1 ergibt: ")
   Console.WriteLine(i & vbNewLine)

   '--- String-Vergleich, der den Inhalt der aufrufenden Instanz berücksichtigt
   ' (Rückgabewert: 0, d.h.: die Strings sind gleich)
   i = s1.CompareTo(s1)
   Console.WriteLine("s1 verglichen mit s1 ergibt: ")
   Console.WriteLine(i & vbNewLine)

  End Sub

Programmcodebeispiele CSharp (C#)

using System;
using System.Globalization;
using System.Threading;

using FCL_Buch;

namespace FCL_Buch._System {

  public class Samples_String {

   // Stringvergleiche
   public void String_Vergleich() {

   string s1;
   string s1a;
   string s2;
   int i;

   s1 = "Holger";
   s1a = "holger";
   s2 = "Babsi";

   // Stringvergleich ohne Berücksichtigung der aufrufenden Instanz
   // (als aufrufende Instanz wird hier der Klassenname ("String") verwendet)
   // 1. Die Strings sind gleich (Rückgabewert: 0)
   i = String.Compare( s1, s1 );
   FclOutput.PrintOut( "1. '" + s1 + "' verglichen mit '" + s2 + "' ergibt: " );
   FclOutput.PrintOut( i.ToString() + " (Die Strings sind gleich)" + "\r\n" );

   // 2. Die Strings sind nicht gleich, da defaultmäßig Groß- und Kleinschreibung berücksichtigt wird
   // (Rückgabewert: 1, d.h.: s1 ist größer als s1a)
   i = String.Compare( s1, s1a );
   FclOutput.PrintOut( "2. s1 verglichen mit s1a ergibt: " );
   FclOutput.PrintOut( i.ToString() + "\r\n" );

   //3. Die Strings sind gleich, da Groß- und Kleinschreibung nicht berücksichtigt wird
   // (Rückgabewert: 0)
   i = String.Compare( s1, s1a, true );
   FclOutput.PrintOut( "3. s1 verglichen mit s1a ergibt: " );
   FclOutput.PrintOut( i.ToString() + "\r\n" );

   //4. Die Strings sind gleich, da Groß- und Kleinschreibung berücksichtigt wird
   // (Rückgabewert: 1, d.h.: s1 ist größer als s1a)
   i = String.Compare( s1, s1a, false );
   FclOutput.PrintOut( "4. s1 verglichen mit s1a ergibt: " );
   FclOutput.PrintOut( i.ToString() + "\r\n" );

   //5. String s1 ist größer als String s2
   // (Rückgabewert: 1)
   i = String.Compare( s1, s2 );
   FclOutput.PrintOut( "5. s1 verglichen mit s2 ergibt: " );
   FclOutput.PrintOut( i.ToString() + "\r\n" );

   //6. String s2 ist kleiner als String s1
   // (Rückgabewert: -1)
   i = String.Compare( s2, s1 );
   FclOutput.PrintOut( "6. s2 verglichen mit s1 ergibt: " );
   FclOutput.PrintOut( i.ToString() + "\r\n" );

   //--- Stringvergleich, der den Inhalt der aufrufenden Instanz berücksichtigt
   // (Rückgabewert: 0, d.h.: die Strings sind gleich)
   i = s1.CompareTo( s1 );
   FclOutput.PrintOut( "s1 verglichen mit s1 ergibt: " );
   FclOutput.PrintOut( i.ToString() + "\r\n" );
   }

   public void String_Vergleich2() {

   // Stringvergleich mit bool als Rückgabewert
   string s1 = "Babsi";
   string s2 = "babsi";
   bool b1;
   bool b2;

   // --- Vergleich unter Berücksichtigung der aufrufenden Instanz
   b1 = s1.Equals( s1 );

   // Die beiden Strings stimmen nicht überein, da case-sensitiv
   b2 = s1.Equals( s2 );


   FclOutput.PrintOut( "Hat die aufrufende Instanz den übergebenen Wert?" );
   FclOutput.PrintOut( b1.ToString() + "\r\n" );
   FclOutput.PrintOut( b2.ToString() + "\r\n" );

   // --- Vergleich ohne Berücksichtigung der aufrufenden Instanz
   // (als aufrufende Instanz wird hier der Klassenname ("String") verwendet)

   // Die beiden Strings stimmen nicht überein, da case-sensitiv
   b1 = String.Equals( s1, s2 );
   FclOutput.PrintOut( "Stimmen die beiden Strings überein?" );
   FclOutput.PrintOut( b1.ToString() + "\r\n" );
   }

   public void String_Vergleich3() {

   // Vergleich für Teilstrings mittels EndWith()
   string s1 = "Hallo Welt";
   string s2 = "Welt";
   string s2a = "welt";
   bool b;

   // Das Ende von String s1 stimmt mit s2 überein
   b = s1.EndsWith( s2 );
   FclOutput.PrintOut( "Endet s1 mit s2?" );
   FclOutput.PrintOut( b.ToString() + "\r\n" );

   // Das Ende von String s1 stimmt mit s2 nicht überein (case-sensitiv)
   b = s1.EndsWith( s2a );
   FclOutput.PrintOut( "Endet s1 mit s2a?" );
   FclOutput.PrintOut( b.ToString() + "\r\n" );
   }
}
}

Querverweise

Definition '.NET Framework Class Library'
Verfügbarkeit der Klasse 'System'
Übersicht über den FCL-Namensraum 'System'
Portal dotnetframework.de