Löst: sträng är lika med ignorera skiftläge

Senaste uppdateringen: 09/11/2023
Författare: C SourceTrail

C# är ett mångfacetterat språk med en mängd funktioner som gör programmeringsuppgifter enklare. En sådan funktion är möjligheten att jämföra strängar samtidigt som man bortser från deras skal med hjälp av StringComparison-uppräkningen. Funktionen `string.Equals` används för att uppnå detta.

Strängjämförelse är avgörande i många programmeringsscenarier. Men ofta bryr vi oss inte om fallet med den text vi jämför. C# förenklar denna process med hjälp av en funktionalitet som är kärnan i många operationer. Denna funktionalitet ger inte bara en lösning på vanliga fel utan förbättrar också programflexibiliteten.

string str1 = "Hello World";
string str2 = "hej värld";

bool isEqual = str1.Equals(str2, StringComparison.OrdinalIgnoreCase);

Ovanstående kodavsnitt visar en typisk tillämpning av `string.Equals` med uppräkningen `StringComparison.OrdinalIgnoreCase`. Funktionsanropet jämför de två strängarna och returnerar true eller false beroende på deras innehåll, oavsett deras skiftläge.

Förstå StringComparison.OrdinalIgnoreCase

StringComparison.OrdinalIgnoreCase är ett uppräkningsvärde som möjliggör en icke-skiftlägeskänslig jämförelse av strängar. Med andra ord, "hej" och "HEJ" anses lika när denna typ av jämförelse används.

Vikten av denna funktion kommer från dess stora applikationer. Om du till exempel skapar ett inloggningssystem är användarnamn normalt inte skiftlägeskänsliga. Denna funktion tillåter användare att ange sitt användarnamn i alla fall de föredrar.

Utforska String.Equals-funktionen

String.Equals är en statisk metod i klassen `String` i C#. Den här funktionen tar två argument: strängen som jämförs och typen av jämförelse. I det här fallet använder vi `StringComparison.OrdinalIgnoreCase`.

Funktionen fungerar genom att iterera över de två strängarna tecken för tecken. Om det stöter på en konflikt (för en normal skiftlägeskänslig jämförelse) returnerar den falskt. Men med `StringComparison.OrdinalIgnoreCase`, innan man jämför tecknen, konverterar den båda till ett universellt format (antingen alla versaler eller gemener) och utför sedan jämförelsen.

Andra applikationer och relaterade funktioner

C# tillhandahåller olika typer av strängjämförelser, som `StringComparison.CurrentCulture`, `StringComparison.CurrentCultureIgnoreCase`, `StringComparison.Ordinal` och `StringComparison.InvariantCulture`. Dessa tillåter utvecklare att hantera olika krav, såsom kulturkänsliga jämförelser.

Kom bara ihåg att varje gång du behöver jämföra strängar på ett sätt som inte tar hänsyn till fallet är `string.Equals` med `StringComparison.OrdinalIgnoreCase` ett utmärkt verktyg att använda.

Vanliga bibliotek för att hantera strängar i C#

C# har ett betydande biblioteksstöd för att hantera strängar. Detta inkluderar klassen 'System.String' och 'System.Text.StringBuilder', som båda tillhandahåller olika metoder för att manipulera och jämföra strängar, vilket gör hanteringen av strängar mycket enklare och effektivare.

Enkelt uttryckt ger C# robusta, funktionella och olika metoder för att hantera dina strängmanipuleringsbehov. Oavsett om det är skiftlägesokänslig jämförelse, textmanipulation eller mönstermatchning, har C# dig täckt med effektivitet.

Relaterade inlägg: