Thread Objektorientiertes Programmieren
(3 answers)
Opened by Strat at 2004-12-19 01:23
[quote=Strat,19.12.2004, 00:23]das problem dabei duerften die unterschiedlichen zeichensaetze sein... um umlaute zu verinternationalisieren wuerde ich folgendermaszen vorgehen:
Code (perl): (dl
)
1 2 my %replacements = ('ä' => 'ae', 'Ä' => 'Ae', ......); $string =~ s/(.)/ exists $replacements{$ 1} ? $replacements{$ 1} : $ 1 /ge; (ohne der leerzeichen zwischen $ und 1) aber es gibt wahrscheinlich noch schnellere moeglichkeiten... PS: das ist eine der wenigen Stellen, wo mir was aus Tcl besser gefaellt als das Aequivalent in Perl (string replace), weil die auch ein zeichen durch mehrere ersetzen kann, was der perl-operator tr (bzw. y) leider nicht kann[/quote] Vielleicht mit split // und Zugriff auf Arrayelemente, allerdings würd ich mir keine Sorgen machen, bei Usereingaben. Das langsamste ist dann eh der User :) Allgemein müsste man messen, was schneller ist. Aber sowas würd ich generell nur machen, wenn es an der Stelle nachgewiesener Maßen darauf ankommt. Wenn z.B. das Program noch zig andere Umwandlungen mit regulären Ausdrücken vornimmt, ist es egal, wie lange dies dauert. s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite |