![]() |
Groß u. Kleinschreibung eines Strings umkehren
Hi,
Wie kann ich die Groß und Kleinschreibung eines String umkehren? Aus HaLLo soll z.B hAllO werden. Danke |
Re: Groß u. Kleinschreibung eines Strings umkehren
Könnte funktionieren:
Delphi-Quellcode:
function SwitchUpperLower(Str : String): String;
var i : Integer; begin Result := Str; for i := 1 to Length(Result) do if UpperCase(Result[i]) = Result[i] then Result[i] := LowerCase(Result[i])[1] else Result[i] := UpperCase(Result[i])[1]; end; |
Re: Groß u. Kleinschreibung eines Strings umkehren
Das ist etwas schneller: ;-)
Delphi-Quellcode:
function SwitchLowerUpper(Value: String): String;
var i: Integer; begin Result := Value; for i := 1 to Length(Value) do if Value[i] in ['a'..'z'] then Result[i] := Chr(Ord(Value[i]) - 32) else if Value[i] in ['A'..'Z'] then Result[i] := Chr(Ord(Value[i]) + 32); end; |
Re: Groß u. Kleinschreibung eines Strings umkehren
Zitat:
|
Re: Groß u. Kleinschreibung eines Strings umkehren
Ganz vergessen, wenn man Umlaute braucht, dann AnsiUpperCase bzw. AnsiLowerCase (in dem Fall wäre auch die schnellere Variante überfordert)
|
Re: Groß u. Kleinschreibung eines Strings umkehren
So meinte ich das mit dem schneller nicht :lol: , die Umlaute hatte ich vergessen :oops: :
Delphi-Quellcode:
function SwitchLowerUpper(Value: String): String;
var i: Integer; begin Result := Value; for i := 1 to Length(Value) do if Value[i] in ['a'..'z', 'ä', 'ö', 'ü'] then Result[i] := Chr(Ord(Value[i]) - 32) else if Value[i] in ['A'..'Z', 'Ä', 'Ö', 'Ü'] then Result[i] := Chr(Ord(Value[i]) + 32); end; |
Re: Groß u. Kleinschreibung eines Strings umkehren
Allerdings in den Zeiten von Unicode würde ich das nicht verwenden wollen ...
|
Re: Groß u. Kleinschreibung eines Strings umkehren
Danke an alle, funktioniert super. :thumb:
|
Re: Groß u. Kleinschreibung eines Strings umkehren
Delphi-Quellcode:
function SwitchLowerUpper(const Value: String): String;
var i: Integer; begin Result := Value; for i := 1 to Length(Result) do if Result[i] in ['a'..'z', 'ä', 'ö', 'ü', 'A'..'Z', 'Ä', 'Ö', 'Ü'] then Result[i] := Chr(Ord(Result[i]) xor $20);
Delphi-Quellcode:
:angel:
function SwitchUpperLower(Value: String): String;
var uValue: String; i: Integer; begin Result := LowerCase(Value); uValue := UpperCase(Value); for i := 1 to Length(Result) do if Result[i] = Value[i] then Result[i] := uValue[i]; end; |
Re: Groß u. Kleinschreibung eines Strings umkehren
Ach, das gibt es schon... und viele Wege führen nach Rom :?
Ich hab' wieder mal auf möglichst wenige Variablen geachtet. Ist zwar sicher unwichtig, aber welche Version ist die schnellste? Ich durchlaufe Length(Str) nur einmal und mache ein paar Vergleiche. Die Delphi Version 3x, wenn am Anfang jeweils der komplette Str in eine Upper/Lower-Version gewandelt wird? Bei jaenicke's Version hängt es wohl von den verwendeten Zeichen ab. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz