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 FCLBuch.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.String'  Übersicht über den FCL-Namensraum 'System'  .NET & Visual Studio Community Portal

Buchtipp

Beratung & Support:

Schulungen zu diesem Thema:

 Visual Basic .NET - Aufbauwissen
 Grundlagen der objektorientierten Programmierung anhand von C# oder Visual Basic .NET
 Unit Testing / Testgetriebene Entwicklung / Test Driven Development (TDD) von .NET-Anwendungen (C#/Visual Basic .NET)
 Visual Basic 6.0 (VB6.0)
 Objektorientierte Entwurfsmuster (Design Patterns) mit .NET (C#, Visual Basic .NET, C++/CLI)
 Visual Basic .NET - Basiswissen
 Windows Modern Apps/Windows Universal Apps entwickeln mit der Windows Runtime (WinRT), XAML und .NET/C#/Visual Basic
 Visual Basic Script (VBScript/VBS) - Sprachsyntax und Praxiseinsatz
 Word-Programmierung mit Visual Basic for Applications (VBA)
 Visual Studio Tools for Microsoft Office (VSTO) - Microsoft Office-Programmierung mit .NET und C# oder Visual Basic in Visual Studio
 Parallelprogrammierung mit .NET (Multi-Threading/Multi-Tasking) - mit C#/Visual Basic und/oder C++
 C# für Umsteiger von Visual Basic .NET
 Objektorientierte Programmierung (OOP) mit C#, Java, C++, Visual Basic.NET o.ä.
 Excel-Programmierung mit Visual Basic for Applications (VBA)
 Visual Basic .NET für Umsteiger von VBA/VB 4/5/6
 Visual Basic 2005 (Visual Basic 8.0)
 C# für Umsteiger von klassischem Visual Basic/COM
 Outlook-Programmierung mit Visual Basic for Applications (VBA)
 Das Component Object Model - für Script- und Visual Basic-Entwickler
 .NET Micro Framework - Embedded-Entwicklung mit .NET/C# oder C++
 .NET-Akademie: .NET-/.NET Core-/C#-Basisseminar: Softwarearchitektur, Techniken, Pattern, Best Practices (2-Tages-Agenda des öffentlichen Seminars)
 Neuerungen in C# 5.0
 Windows 8/Windows 8.1 für Entwickler: Programmierung mit der Windows Runtime (WinRT) - Erstellen von Windows Apps mit C#/XAML und/oder JavaScript/HTML
 Neuerungen in C# 7.0/7.1/7.2/7.3
 .NET und C# für Umsteiger von Java
 .NET Akademie: Xamarin: .NET-/C#-Cross-Plattform-Entwicklung für iOS (iPhone, iPad) und Android sowie Windows Phone (3-Tages-Agenda des öffentlichen Seminars)
 Task Parallel Library (TPL) - Parallelprogrammierung/Multi-Threading in .NET/C#
 Neuerung in der CLR 2.0 und C# 2005
 Neuerungen in C# 4.0 (Visual C# 2010)
 Xamarin: .NET-/C#-Cross-Plattform-Entwicklung für iOS (iPhone, iPad) und Android sowie Windows/Windows Phone
 Anfrage für eine individuelle Schulung zum Thema Visual Basic;C#  Gesamter Schulungsthemenkatalog

Bücher zu diesem Thema:

 Windows Scripting (5. Auflage)
 Moderne Datenzugriffslösungen mit Entity Framework Core 1.1 (PDF)
 C# 7.3 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin (PDF-E-Book)
 C# 8.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin (gedruckte Ausgabe)
 Windows Scripting Lernen 5. Auflage
 ASP.NET Core Blazor 3.0/3.1: Blazor Server und Blazor Webassembly - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio (DRUCK)
 Microsoft ASP.NET 2.0 mit C# 2005 - Das Entwicklerbuch
 Essential PowerShell
 ASP.NET Core Blazor 5.0: Blazor WebAssembly und Blazor Server - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio (gedruckte Ausgabe)
 Moderne Datenzugriffslösungen mit Entity Framework 6 (E-Book - PDF, MOBI, EPUB)
 Moderne Datenzugriffslösungen mit Entity Framework Core 5.0 (Buchversion 9.x, gedruckte Ausgabe)
 ASP.NET Core Blazor 5.0: Blazor WebAssembly und Blazor Server - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio (PDF-E-Book)
 Microsoft ASP.NET 4.5 mit C# 2012 - Entwicklerbuch
 Datenbankprogrammierung mit .NET 4.0. Mit Visual Studio 2010 und SQL Server 2008 R2
 Moderne Datenzugriffslösungen mit Entity Framework 6 (gedruckte Ausgabe)
 Effizienter Datenzugriff mit Entity Framework Core: Datenbankprogrammierung mit C# für .NET Framework, .NET Core und Xamarin
 Microsoft ASP.NET 3.5 mit Visual Basic 2008 - Das Entwicklerbuch
 Moderne Datenzugriffslösungen mit Entity Framework Core 5.0 (Buchversion 9.x, PDF-E-Book)
 Moderne Datenzugriffslösungen mit Entity Framework Core 1.1 und 2.0-Preview2 (Buchversion 1.4)
 Moderne Datenzugriffslösungen mit Entity Framework Core 3.1 (Buchversion 8.x, gedruckte Ausgabe)
 ASP.NET Core Blazor 3.1/3.2: Blazor Server und Blazor Webassembly - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio (Kindle-E-Book)
 ASP.NET 4.0
 Moderne Datenzugriffslösungen mit Entity Framework Core 1.1.2 und 2.0-Preview2: Datenbankprogrammierung mit .NET/.NET Core und C# (PDF)
 Webanwendungen mit ASP.NET 3.5 und AJAX Crashkurs
 Moderne Datenzugriffslösungen mit Entity Framework Core 1.x und 2.0: Datenbankprogrammierung mit .NET/.NET Core und C# (E-Book - PDF)
 Windows Scripting Lernen, 6. Auflage
 ASP.NET Core Blazor 3.1/3.2: Blazor Server und Blazor Webassembly - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio (PDF-E-Book)
 C# 7.2 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin (PDF-E-Book)
 Windows Scripting Lernen, 2. Auflage
 Moderne Datenzugriffslösungen mit Entity Framework Core 3.0 (Buchversion 6.x, Kindle-E-Book)
 Microsoft ASP.NET 3.5 mit Visual C# 2008 - Das Entwicklerbuch
 C# 9.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET 5.0, .NET Core und Xamarin (Kindle-E-Book)
 Moderne Datenzugriffslösungen mit Entity Framework Core 2.0 (Buchversion 4.x): Datenbankprogrammierung mit .NET/.NET Core und C# (PDF-E-Book)
 Microsoft .NET 4.5 Update - Crashkurs (E-Book - PDF)
 Einblicke in C# 6.0 (shortcuts 181) Kindle Edition
 C# 8.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin (Kindle-E-Book)
 Microsoft Visual C# 2010
 Moderne Datenzugriffslösungen mit Entity Framework Core 3.0 (Buchversion 7.x, PDF-E-Book)
 Office 2010 Programmierung mit VSTO und .NET 4.0: Word, Excel und Outlook erweitern und anpassen
 Microsoft ASP.NET 2.0 mit Visual Basic 2005 - Das Entwicklerbuch
 C# 7.3 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin (gedruckte Ausgabe)
 ASP.NET Core Blazor 5.0: Blazor WebAssembly und Blazor Server - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio (Kindle-E-Book)
 Windows PowerShell - Konzepte, Praxiseinsatz, Erweiterungen
 Moderne Datenzugriffslösungen mit Entity Framework Core 3.1 (Buchversion 8.x, PDF-E-Book)
 Moderne Datenzugriffslösungen mit Entity Framework 6 (Kindle)
 ASP.NET Core Blazor 3.0/3.1: Blazor Server und Blazor Webassembly - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio (Kindle)
 Visual Basic 2010: Grundlagen, ADO.NET, Windows Presentation Foundation
 Moderne Datenzugriffslösungen mit Entity Framework Core 5.0 (Buchversion 9.x, Kindle-E-Book)
 Microsoft ASP.NET 4.0 mit C# 2010
 Microsoft .NET 4.5 Update - Crashkurs
 Moderne Datenzugriffslösungen mit Entity Framework Core 3.1 (Buchversion 8.x, Kindle-E-Book)
 .NET 3.5
 ASP.NET Core Blazor 3.1/3.2: Blazor Server und Blazor Webassembly - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio (gedruckte Ausgabe)
 C# 9.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET 5.0, .NET Core und Xamarin (PDF-E-Book)
 ASP.NET 4.0 mit Visual C# 2010
 Moderne Webanwendungen für .NET-Entwickler: Server-Anwendungen, Web APIs, SPAs & HTML-Cross-Platform-Anwendungen mit ASP.NET, ASP.NET Core, JavaScript/TypeScript und Angular
 Windows 8 Apps entwickeln mit C# und XAML - Crashkurs
 Moderne Datenzugriffslösungen mit Entity Framework Core 1.1.1 und 2.0-Preview2: Datenbankprogrammierung mit .NET/.NET Core und C# (gedruckte Ausgabe)
 Moderne Datenzugriffslösungen mit Entity Framework Core 1.1: Datenbankprogrammierung mit .NET/.NET Core und C# (gedruckte Ausgabe)
 C# 7.3 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin (Kindle-E-Book)
 Microsoft SQL Server 2008 R2 - Das Entwicklerbuch
 .NET 3.5 Crashkurs
 Modern Data Access with Entity Framework Core: Database Programming Using .NET, .NET Core, UWP, and Xamarin with C#
 Microsoft .NET 2.0 Crashkurs - Final Edition
 Moderne Datenzugriffslösungen mit Entity Framework Core 1.x und 2.0: Datenbankprogrammierung mit .NET/.NET Core und C# (gedruckte Ausgabe)
 Visual Basic 2010
 ASP.NET Core Blazor 3.0/3.1: Blazor Server und Blazor Webassembly - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio (PDF)
 Moderne Datenzugriffslösungen mit Entity Framework Core 2.0/2.1 (Buchversion 5.x, PDF-E-Book)
 Docker und die Containerwelt - Einstieg und Expertentipps rund um Docker-Container (shortcut)
 C# 8.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin (PDF-E-Book)
 Datenbankprogrammierung mit .NET 4.5. Mit Visual Studio 2012 und SQL Server 2012
 Moderne Datenzugriffslösungen mit Entity Framework Core 3.0 (Buchversion 6.x, Gedruckte Ausgabe)
 C# 9.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET 5.0, .NET Core und Xamarin (gedruckte Ausgabe)
 .NET 4.0 Crashkurs
 Moderne Datenzugriffslösungen mit Entity Framework Core 2.0 (Buchversion 4.x): Datenbankprogrammierung mit .NET/.NET Core und C# (gedruckte Ausgabe)
 Alle unsere aktuellen Fachbücher