Ändern Sie die letzten beiden Zeichen einer Zeichenkette in Perl
Ich bin auf der Suche nach einer Lösung für ein problem:
Habe ich die NSAP-Adresse, die ist 20 Zeichen lang:
39250F800000000000000100011921680030081D
Habe ich jetzt ersetzen Sie die letzten zwei Zeichen des Strings mit F0
und die abschließende Zeichenfolge sollte wie folgt Aussehen:
39250F80000000000000010001192168003008F0
Meine aktuelle Umsetzung hackt die letzten zwei Zeichen und hängt F0
es:
my $nsap = "39250F800000000000000100011921680030081D";
chop($nsap);
chop($nsap);
$nsap = $nsap."F0";
Gibt es einen besseren Weg, dies zu erreichen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
substr
:oder
Oder Sie können mit einem einfachen regex:
Dies ist aus
substr
's manpage:Nun, der interessante Teil ist, dass das Ergebnis
substr
können verwendet werden, als lvalue und zugeordnet werden:oder verwenden Sie den Ersatz Feld:
ersetzt die letzten beiden Zeichen einer Zeichenkette mit
F0
.Verwenden Sie die substr( ) Funktion:
chop( ) und den zugehörigen chomp( ) sind wirklich beabsichtigte für das entfernen Zeilenende-Zeichen - Zeilenumbrüche und so weiter.
Ich glaube, dass substr( ) wird schneller als mit einem regulären Ausdruck.