UniCode ()
Unicode-Dateien zu sortieren ist keine einfache Aufgabe. Da die Reihenfolge der Zeichen historisch gewachsen ist, liegen z.B. die deutschen Umlaute und die französischen irgendwo im Unicode- Bereich, aber nicht hintereinander und ebensowenig sinnvoll geordnet.
Es gibt aber in verschiedenen Programmiersprachen die Möglichkeit, Buchstaben in einen Basisbuchstaben und ein Akzentze- ichen zu “trennen” (in Java z. B. mit der Klasse java.text.Normalizer).
Ihr Programm soll zu einem eingegebenen Text die Buchstaben nach dem Basisbuchstaben sortiert ausgeben.
0 Kommentare
3 Lösung(en)
function normsort(txt) {
let arr = txt.normalize('NFKD').split('');
arr = arr.filter( function(i) {
let cc = i.charCodeAt(0);
return (cc >= 65 && cc <= 90) || // A..Z
(cc >= 97 && cc <= 122); // a..z
});
return arr.sort().join('');
}
console.log( normsort('úòïêå') ); // --> aeiou
Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)
def sorted_normalized_text(text):
import unicodedata
normalized = map(lambda x: unicodedata.normalize("NFKD", x)[0], text)
filtered = filter(lambda x: "A" <= x <= "Z" or "a" <= x <= "z", normalized)
return "".join(sorted(filtered))
print(sorted_normalized_text("úòïêå"))
Lösung von: Name nicht veröffentlicht
// NET 6.x | C# 10.x | VS-2022
static string Normalize(string s) => new(s.Normalize(System.Text.NormalizationForm.FormD)
.Where(x => System.Globalization.CharUnicodeInfo.GetUnicodeCategory(x) != System.Globalization.UnicodeCategory.NonSpacingMark).OrderBy(x => x).ToArray());
Console.WriteLine(Normalize("äüöëúòîïêåç"));
Lösung von: Jens Kelm (@JKooP)
Aktionen
Neue Lösung hinzufügen
Bewertung
Durchschnittliche Bewertung: