Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.797 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Übung macht den Meister - zeigt her eure Lösungen

  Alt 13. Sep 2021, 15:16
Ich spar mir mal das drumherum (erstellt in Delphi 11):
Delphi-Quellcode:
function GetDuplicatesFromString(const AString: string): TArray<string>;
const
  cWordDelims: TArray<string> = [' ', ',', '.'];
  cCaseSensitive = False;
var
  KnownWords: TStringList;
  Duplicates: TStringList;
begin
  KnownWords := TStringList.Create(dupIgnore, True, cCaseSensitive);
  try
    Duplicates := TStringList.Create(dupIgnore, True, cCaseSensitive);
    try
      for var CurrentWord in AString.Split(cWordDelims) do
        if KnownWords.IndexOf(CurrentWord) < 0 then
          KnownWords.Add(CurrentWord)
        else
          Duplicates.Add(CurrentWord);
      Result := Duplicates.ToStringArray;
    finally
      Duplicates.Free;
    end;
  finally
    KnownWords.Free;
  end;
end;
Die Ausgabe der Duplikate erfolgt hier alphabetisch und in Bezug auf Groß-/Kleinschreibung wird die Schreibweise des zweiten Vorkommens des Wortes verwendet.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat