English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Ruby 字符串(String)

Der String-Objekt in Ruby wird verwendet, um eine oder mehrere Byte-Reihen zu speichern oder zu verarbeiten.

Ruby-Zeichenketten werden in einfache Anführungszeichen-Zeichenketten ('') und doppelte Anführungszeichen-Zeichenketten ("") unterteilt, der Unterschied besteht darin, dass doppelte Anführungszeichen-Zeichenketten mehr Escape-Zeichen unterstützen können.

einfache Anführungszeichen-Zeichenkette

Die einfachste Zeichenkette ist eine einfache Anführungszeichen-Zeichenkette, d.h. eine Zeichenkette in einfachen Anführungszeichen: '

'Dies ist eine Zeichenkette eines Ruby-Programms'

Wenn Sie innerhalb einer einklammernden Zeichenkette einen Anführungszeichen字符 verwenden müssen, müssen Sie im Anführungszeichen eine Backslash (\) verwenden, damit der Ruby-Interpreter den Anführungszeichencharacter nicht als Ende der Zeichenkette interpretiert:

'Won\'t you read O\'Reilly\'s book?'

Ein Backslash kann auch einen anderen Backslash escapen, so dass der zweite Backslash selbst nicht als Escape-Zeichen interpretiert wird.

Hier sind einige Eigenschaften von Zeichenketten in Ruby.

doppelte Anführungszeichen-Zeichenkette

In einer doppelten Anführungszeichen-Zeichenkette können wir #{} Hash-Symbol und Klammer zur Berechnung des Ausdrucks: #{}

Variablen in einer Zeichenkette einbetten:

Online-Beispiel

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
name1 = "Joe"
name2 = "Mary"
puts "Hallo #{name1}, #{name2}} Wo ist sie?"

Die folgenden Beispiele geben das Ausgabeergebnis aus:

Hallo Joe, wo ist Mary?

Mathematische Operationen in einer Zeichenkette:

Online-Beispiel

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
x, y, z = 12, 36, 72
puts "x"'s Wert ist #{(x
puts "x" + Der Wert von 'y' ist #{(x + y"
puts "x" + y + Die durchschnittliche Wert von 'z' ist #{(x + y + z)/3 "}

Die folgenden Beispiele geben das Ausgabeergebnis aus:

Der Wert von x ist 12
x + Der Wert von y ist 48
x + y + Der Durchschnittswert von z ist 40

Ruby unterstützt auch String-Variablen, die mit %q und %Q eingeleitet werden, %q verwendet die Regeln der einfachen Anführungszeichen, während %Q die Regeln der doppelten Anführungszeichen verwendet, gefolgt von einem (! [ { etc. als Startzeichen und } ] ) etc. als Endzeichen.

Die Zeichen, die nach q oder Q folgen, sind Trennzeichen. Das Trennzeichen kann jeder nicht-alphanumerische Einzeilige Zeichensatz sein. Zum Beispiel: [,{,(,<,!, etc., die Zeichenkette wird weiter gelesen, bis das entsprechende Schließzeichen gefunden wird.

Online-Beispiel

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
desc1 = %Q{Ruby-Strings können '' und "" verwenden.}
desc2 = %q|Ruby-Strings können '' und "" verwenden.|
 
puts desc1
puts desc2

Die folgenden Beispiele geben das Ausgabeergebnis aus:

Ruby-Strings können '' und "" verwenden.
Ruby-Strings können '' und "" verwenden.

Escape-Zeichen

Die Tabelle gibt die Escape-Zeichen oder nicht-druckbaren Zeichen an, die mit dem Backslash-Zeichen escaped werden können.

Beachten Sie:In einer mit doppelten Anführungszeichen umgebenen Zeichenkette werden Escape-Zeichen interpretiert. In einer mit einfachen Anführungszeichen umgebenen Zeichenkette werden Escape-Zeichen nicht interpretiert und werden wortwörtlich ausgegeben.

Backslash-ZeichenHexadezimalzeichenDescription
\a0x07Alarmsignal
\b0x08Backspace-Taste
\cx Control-x
\C-x Control-x
\e0x1bEscape-Zeichen
\f0x0cSeitenwechsler
\M-\C-x Meta-Control-x
\n0x0aZeilenumbruch
\nnn Oktalnotation, wobei n im Bereich 0 liegt.7
\r0x0dReturn-Zeichen
\s0x20Leerzeichen
\t0x09Tabulator
\v0x0bVertikaler Tabulator
\x Zeichen x
\xnn Hexadezimalnotation, wobei n im Bereich 0 liegt.9, a.f oder A.F

Zeichenkodierung

Ruby verwendet standardmäßig ASCII als Zeichensatz, bei dem Zeichen mit einem Byte dargestellt werden können. Wenn Sie UTF-8 oder anderen modernen Zeichensätzen, bei denen Zeichen mit einem bis vier Bytes dargestellt werden können.

Sie können $KCODE am Anfang des Programms ändern, um Zeichensatz zu ändern, wie folgt:

$KCODE = 'u'

Hier sind mögliche Werte von $KCODE.

KodierungDescription
aASCII (entspricht none). Dies ist die Standard-Einstellung.
eEUC.
nNone (entspricht ASCII).
uUTF-8.

Eingebauten String-Methode

Wir müssen ein Beispiel für ein String-Objekt haben, um String-Methode aufzurufen. Hier ist eine Art, ein String-Objekt zu erstellen:

new[String.new(str="")]

Dies wird einen String-Objekt zurückgeben, der enthält str Neue String-Objekte. Jetzt, verwenden str 对象,我们可以调用任意可用的示例方法。例如:

Online-Beispiel

#!/usr/bin/ruby
 
myStr = String.new("THIS IS TEST")
foo = myStr.downcase
 
puts "#{foo}"

这将产生以下结果:

this is test

下面是公共的字符串方法(假设 str 是一个 String 对象):

序号方法 & 描述
1str % arg
使用格式规范格式化字符串。如果 arg 包含一个以上的代替,那么 arg 必须是一个数组。如需了解更多格式规范的信息,请查看"内核模块"下的 sprintf。
2str * integer
返回一个包含 integer 个 str 的新的字符串。换句话说,str 被重复了 integer 次。
3str + other_str
Concatenates other_str to str.
4str << obj
连接一个对象到字符串。如果对象是范围为 0.255 之间的固定数字 Fixnum,则它会被转换为一个字符。把它与 concat 进行比较。
5str <=> other_str
把 str 与 other_str 进行比较,返回 -1(小于)、0(等于)或 1(大于)。比较是区分大小写的。
6str == obj
检查 str 和 obj 的相等性。如果 obj 不是字符串,则返回 false,如果 str <=> obj,则返回 true,返回 0。
7str =~ obj
根据正则表达式模式 obj 匹配 str。返回匹配开始的位置,否则返回 false。
8str[position] # 注意返回的是ASCII码而不是字符
str[start, length]
str[start..end]
str[start...end]

使用索引截取子串
9str.capitalize
把字符串转换为大写字母显示。
10str.capitalize!
与 capitalize 相同,但是 str 会发生变化并返回。
11str.casecmp
不区分大小写的字符串比较。
12str.center
居中字符串。
13str.chomp
从字符串末尾移除记录分隔符($/),通常是 \n。如果没有记录分隔符,则不进行任何操作。
14str.chomp!
与 chomp 相同,但是 str 会发生变化并返回。
15str.chop
Removes the last character from str.
16str.chop!
Is the same as chop, but str will change and return.
17str.concat(other_str)
Concatenates other_str to str.
18str.count(str, ...)
Counts the characters in one or more character sets. If there are multiple character sets, the intersection of these sets is counted.
19str.crypt(other_str)
Applies a one-way encrypted hash to str. The parameter is a two-character string, each character ranging from a.z, A.Z, 0.9、 . Or /.
20str.delete(other_str, ...)
Returns a copy of str with all characters in the intersection of the parameters removed.
21str.delete!(other_str, ...)
Is the same as delete, but str will change and return.
22str.downcase
Returns a copy of str with all uppercase letters replaced by lowercase letters.
23str.downcase!
Is the same as downcase, but str will change and return.
24str.dump
Returns a version of str with all non-printable characters replaced by \nnn symbols, and all special characters are escaped.
25str.each(separator=$/) { |substr| block }
Uses the parameter as the record separator (default is $/) splits str, passing each substring to the block provided.
26str.each_byte { |fixnum| block }
Passes each byte of str to the block, returning each byte in decimal notation.
27str.each_line(separator=$/) { |substr| block }
Uses the parameter as the record separator (default is $/Splits str, passing each substring to the block provided.
28str.empty?
If str is empty (i.e., length is 0), then return true.
29str.eql?(other)
If two strings have the same length and content, then these two strings are equal.
30str.gsub(pattern, replacement) [or]
str.gsub(pattern) { |match| block }

Returns a copy of str with all occurrences of pattern replaced by the value of replacement or block./\d/ Passt auf eine Zahl, aber '\d' passt auf einen Backslash gefolgt von einem 'd').
31str[fixnum] [oder] str[fixnum,fixnum] [oder] str[range] [oder] str[regexp] [oder] str[regexp, fixnum] [oder] str[other_str]
Verwende die folgenden Parameter, um str zu referenzieren: Ein Parameter ist ein Fixnum, dann wird die Zeichencodierung des Fixnums zurückgegeben; sind zwei Fixnums Parameter, dann wird ein Teilstring von der Verschiebung (erster Fixnum) bis zur Länge (zweiter Fixnum) zurückgegeben; ist ein Bereich, dann wird ein Teilstring in diesem Bereich zurückgegeben; ist ein reguläres Ausdruck, dann wird der Teilstring, der dem regulären Ausdruck entspricht, zurückgegeben; ist ein regulärer Ausdruck mit Fixnum, dann wird die Daten des Matches an der Position Fixnum zurückgegeben; ist ein other_str, dann wird der Teilstring, der other_str entspricht, zurückgegeben. Ein negativer Fixnum beginnt am Ende des Strings. -1 Beginn.
32str[fixnum] = fixnum [oder] str[fixnum] = new_str [oder] str[fixnum, fixnum] = new_str [oder] str[range] = aString [oder] str[regexp] = new_str [oder] str[regexp, fixnum] = new_str [oder] str[other_str] = new_str ]
Ersetzt den gesamten String oder einen Teil des Strings. Synonym zu slice!.
33str.gsub!(pattern, replacement) [oder] str.gsub!(pattern) { |match| block }
Führt den Ersatz mit String#gsub durch und gibt str zurück, wenn kein Ersatz ausgeführt wird, dann wird nil zurückgegeben.
34str.hash
Gibt einen Hash basierend auf der Länge und dem Inhalt des Strings zurück.
35str.hex
Nimmt die führenden Zeichen von str als Zeichenkette von Hexadezimalzahlen (ein optionales Symbol und ein optionales 0x) und gibt die entsprechenden Nummern zurück. Wenn ein Fehler auftritt, wird null zurückgegeben.
36str.include? other_str [oder] str.include? fixnum
Wenn str die angegebene Zeichenkette oder den Zeicheninhalt enthält, wird true zurückgegeben.
37str.index(substring [, offset]) [or]
str.index(fixnum [, offset]) [or]
str.index(regexp [, offset])

Gibt die Indexposition des ersten Auftretens des gegebenen Unterstrings, des Zeichens (fixnum) oder des Musters (regexp) in str zurück. Gibt nil zurück, wenn es nicht gefunden wird. Wenn ein zweiter Parameter bereitgestellt wird, wird die Position angegeben, an der in der Zeichenkette gesucht wird.
38str.insert(index, other_str)
Fügt other_str vor dem Zeichen an der angegebenen Indexposition ein und ändert str. Negative Indizes zählen von der Endung der Zeichenkette beginnend und fügen nach dem angegebenen Zeichen ein. Der Zweck ist, eine Zeichenkette an der angegebenen Indexposition zu beginnen.
39str.inspect
Gibt die maschinenlesbare Version von str zurück, die spezielle Escape-Zeichen enthält.
40str.intern [or] str.to_sym
Gibt das Symbol, das mit str korrespondiert zurück, erstellt es, falls es vorher nicht existiert.
41str.length
Gibt die Länge von str zurück. Vergleicht sie mit size.
42str.ljust(integer, padstr=' ')
Gibt eine neue Zeichenkette zurück, die eine Länge von integer hat, linksbündig ausgerichtet und mit padstr gefüllt, wenn integer größer als die Länge von str ist. Andernfalls wird str zurückgegeben.
43str.lstrip
Gibt eine Kopie von str zurück, die führende Leerzeichen entfernt hat.
44str.lstrip!
Entfernt führende Leerzeichen von str, gibt nil zurück, wenn es keine Änderungen gibt.
45str.match(pattern)
Wenn pattern kein reguläres Ausdruck ist, wird pattern in einen regulären Ausdruck Regexp umgewandelt und seine Suchmethode auf str aufgerufen.
46str.oct
Behandelt den führenden Zeichen von str als eine Dezimalziffern-Zeichenkette (ein optionales Symbol) und gibt das entsprechende Nummer zurück. Falls die Konvertierung fehlgeschlagen ist, wird 0 zurückgegeben.
47str.replace(other_str)
Ersetzt den Inhalt von str durch den entsprechenden Wert in other_str.
48str.reverse
Gibt einen neuen String zurück, der das Gegenteil von str ist.
49str.reverse!
Umkehrt str, str wird verändert und zurückgegeben.
50str.rindex(substring [, fixnum]) [or]
str.rindex(fixnum [, fixnum]) [or]
str.rindex(regexp [, fixnum])

Gibt den letzten Index des angegebenen Unterstrings, des Zeichens (fixnum) oder des Musters (regexp) in str zurück. Wenn es nicht gefunden wird, wird nil zurückgegeben. Wenn ein zweiter Parameter bereitgestellt wird, wird die Position angegeben, an der die Suche in der Zeichenkette enden soll. Zeichen, die über diesen Punkt hinausgehen, werden nicht berücksichtigt.
51str.rjust(integer, padstr=' ')
Wenn das integer größer als die Länge von str ist, gibt eine neue Zeichenkette mit der Länge von integer zurück, die rechtsbündig ist und mit padstr gefüllt wird. Ansonsten gibt es str zurück.
52str.rstrip
Gibt eine Kopie von str zurück, die die nachfolgenden Leerzeichen entfernt hat.
53str.rstrip!
Entfernt die nachfolgenden Leerzeichen aus str und gibt nil zurück, wenn keine Änderung vorliegt.
54str.scan(pattern) [oder]
str.scan(pattern) { |match, ...| block }

Beide Formen passen auf das Pattern (kann ein Regexp oder ein String sein) an, um durch str zu gehen. Für jeden Treffer wird ein Ergebnis generiert, das zur Ergebnisliste hinzugefügt wird oder an den Block weitergegeben wird. Wenn das Pattern keine Gruppierung enthält, besteht jeder独立的 Ergebnis aus dem passenden String und $&. Wenn das Pattern Gruppierungen enthält, besteht jeder独立的 Ergebnis aus einem Array, das jede Gruppeneingang enthält.
55str.slice(fixnum) [oder] str.slice(fixnum, fixnum) [oder]
str.slice(range) [oder] str.slice(regexp) [oder]
str.slice(regexp, fixnum) [oder] str.slice(other_str)
Siehe str[fixnum], etc.
str.slice!(fixnum) [oder] str.slice!(fixnum, fixnum) [oder] str.slice!(range) [oder] str.slice!(regexp) [oder] str.slice!(other_str)

Entfernt einen angegebenen Teil aus str und gibt den entfernten Teil zurück. Wenn der Wert aus dem Bereich hinausgeht, wird ein IndexError erzeugt, wenn der Parameter in Form von Fixnum vorliegt, und ein RangeError, wenn der Parameter in Form von range vorliegt. Wenn der Parameter in Form von Regexp und String vorliegt, wird die Aktion ignoriert.
56str.split(pattern=$;, [limit])

Splits str into substrings based on the delimiter and returns an array of these substrings.

If pattern is a string String, then it will be used as a delimiter when splitting str. If pattern is a single space, then str is split based on spaces, ignoring leading spaces and consecutive space characters.

If pattern  is a regular expression Regexp, then str is split at the place where pattern matches. When pattern matches a zero-length string, str is split into individual characters.

If the pattern parameter is omitted, the value of $; is used. If $; is nil (the default), str is split based on spaces, as if the space ` ` was specified as the delimiter.

If the limit Parameter, suppresses trailing null fields. If limit is a positive number, the maximum number of fields returned is that number (if limit is 1Returns the entire string as the only entry in the array. If limit is a negative number, the number of returned fields is not limited, and trailing null fields are not suppressed.

57str.squeeze([other_str]*)
Builds a series of characters from the other_str parameter using the program described in String#count. Returns a new string where identical characters in the set are replaced with a single character. If no parameter is given, all identical characters are replaced with a single character.
58str.squeeze!([other_str]*)
Similar to squeeze, but str will be changed and returned, or nil if there is no change.
59str.strip
Returns a copy of str with leading and trailing whitespace removed.
60str.strip!
Removes leading and trailing whitespace from str, and returns nil if there is no change.
61str.sub(pattern, replacement) [or]
str.sub(pattern) { |match| block }

Returns a copy of str with the first occurrence of pattern replaced by replacement or the value of block. pattern is typically a regular expression Regexp; if it is a string String, then no regular expression meta characters are interpreted.
62str.sub!(pattern, replacement) [or]
str.sub!(Muster) { |Treffer| Block }

Führt String#sub-Ersatz aus und gibt 'str' zurück, falls kein Ersatz ausgeführt wird, wird nil zurückgegeben.
63str.succ [oder] str.next
Gibt die Vererbung von 'str' zurück.
64str.succ! [oder] str.next!
Äquivalent zu String#succ, aber 'str' wird geändert und zurückgegeben.
65str.sum(n=16)
Gibt die 'n'-te Zeichen des 'str' zurück-bit-Prüfsumme, wobei 'n' ein optionaler Fixnum-Parameter ist, der standardmäßig 16. Das Ergebnis ist einfach die Summe der binären Werte jedes Zeichens in 'str', addiert mit 2n - 1 modulo. Dies ist nicht eine besonders gute Prüfsumme.
66str.swapcase
Gibt eine Kopie von 'str' zurück, wobei alle Großbuchstaben in Kleinbuchstaben und alle Kleinbuchstaben in Großbuchstaben umgewandelt werden.
67str.swapcase!
Äquivalent zu String#swapcase, aber 'str' wird geändert und zurückgegeben, falls keine Änderungen vorgenommen werden, wird nil zurückgegeben.
68str.to_f
Gibt das Ergebnis zurück, indem die führenden Zeichen von 'str' als Fließkomma interpretiert werden. Überflüssige Zeichen am Ende der gültigen Nummer werden ignoriert. Wenn keine gültige Nummer am Anfang von 'str' vorhanden ist, wird 0.0 zurückgegeben. Diese Methode erzeugt keine Ausnahme.
69str.to_i(base=10)
Gibt zurück, wie die führenden Zeichen von 'str' als Integerbasis (Basis) 2、 8、 10 oder 16Ergebnis. Überflüssige Zeichen am Ende der gültigen Nummer werden ignoriert. Wenn keine gültige Nummer am Anfang von 'str' vorhanden ist, wird 0 zurückgegeben. Diese Methode erzeugt keine Ausnahme.
70str.to_s [oder] str.to_str
Gibt den empfangenen Wert zurück.
71str.tr(from_str, to_str)
Gibt eine Kopie von 'str' zurück, wobei die Zeichen in 'from_str' durch die entsprechenden Zeichen in 'to_str' ersetzt werden. Wenn 'to_str' kürzer ist als 'from_str', wird es mit dem letzten Zeichen gefüllt. Beide Zeichenfolgen können 'c' verwenden.1.c2 Zeichenbedeutung für den Bereich von Zeichen. Wenn 'from_str' mit '^' beginnt, bedeutet dies alle Zeichen außer den aufgelisteten.
72str.tr!(from_str, to_str)
Äquivalent zu String#tr, aber 'str' wird geändert und zurückgegeben, falls keine Änderungen vorgenommen werden, wird nil zurückgegeben.
73str.tr_s(from_str, to_str)
Verarbeiten Sie 'str' gemäß den Regeln von String#tr und entfernen Sie dann die Zeichen, die die Übersetzung beeinflussen.
74str.tr_s!(from_str, to_str)
Is equivalent to String#tr_s, but str will change and return, or return nil if there is no change.
75str.unpack(format)
Decode str (which may contain binary data) according to the format string, and return an array of each extracted value. The format character consists of a series of single-character instructions. A number may follow each instruction to indicate the number of times to repeat the instruction. An asterisk (*)*The space in the format string will be ignored. The instruction sSiIlL may be followed by an underscore (_) after each, using the local size of the underlying platform for the specified type, otherwise using a consistent size independent of the platform.
76str.upcase
Return a copy of str with all lowercase letters replaced with uppercase letters. The operation is case-insensitive, and only characters a to z are affected.
77str.upcase!
Change the content of str to uppercase, and return nil if there is no change.
78str.upto(other_str) { |s| block }
Iterate over consecutive values, starting with str, ending with other_str (inclusive), and alternately pass each value to the block. The String#succ method is used to generate each value.

String unpack commands

The following table lists the unpack commands of the String#unpack method.

CommandReturnDescription
AStringRemove trailing nulls and spaces.
aStringString.
BStringExtract bits from each character (starting with the most significant bit).
bStringExtract bits from each character (starting with the least significant bit).
CFixnumExtract a character as an unsigned integer.
cFixnumExtract a character as an integer.
D, dFloatUse characters of length sizeof(double) as native double.
EFloatUse characters of length sizeof(double) as littleendian byte order double.
eFloatUse characters of length sizeof(float) as littleendian byte order float.
F, fFloatUse characters of length sizeof(float) as native float.
GFloatUse characters of length sizeof(double) as double in network byte order.
gFloatUse characters of length sizeof(float) as float in network byte order.
HStringExtrahieren Sie aus jedem Zeichen Hexadezimal (zuerst der höchste effektive Bit).
hStringExtrahieren Sie aus jedem Zeichen Hexadezimal (zuerst der niedrigste effektive Bit).
IIntegerBetrachten Sie sizeof(int) Länge (durch _ geändert) aufeinanderfolgende Zeichen als nativen integer.
iIntegerBetrachten Sie sizeof(int) Länge (durch _ geändert) aufeinanderfolgende Zeichen als signierten nativen integer.
LIntegerBetrachten Sie vier (durch _ geändert) aufeinanderfolgende Zeichen als unsigned nativen long integer.
lIntegerBetrachten Sie vier (durch _ geändert) aufeinanderfolgende Zeichen als signierten nativen long integer.
MStringVerwenden Sie den Zeiger, um druckbare zu referenzieren.
mStringBase64 Kodierung.
NIntegerBetrachten Sie vier Zeichen als network Byte-Reihenfolge unsigned long.
nFixnumBetrachten Sie zwei Zeichen als network Byte-Reihenfolge unsigned short.
PString) Längenzeichens als Zeiger und geben Sie von der Referenzposition aus \emph{len} Zeichen zurück. *) Längenzeichens als Zeiger und geben Sie von der Referenzposition aus \emph{len} Zeichen zurück.
pString) Längenzeichens als Zeiger und geben Sie von der Referenzposition aus \emph{len} Zeichen zurück. *Betrachten Sie sizeof(char
) Längenzeichens als einen Null-Ende-Zeiger.IntegerBetrachten Sie acht Zeichen als unsigned quad word (64 Bit).
qIntegerBetrachten Sie acht Zeichen als signierten quad word (64 Bit).
SFixnumBetrachten Sie zwei (wenn _ verwendet wird, unterschiedlich) aufeinanderfolgende Zeichen als native Byte-Reihenfolge unsigned short.
sFixnumBetrachten Sie zwei (wenn _ verwendet wird, unterschiedlich) aufeinanderfolgende Zeichen als native Byte-Reihenfolge signierte short.
UIntegerUTF-8 Zeichen, als unsigned Integer.
uStringUU Kodierung.
VFixnumBetrachten Sie vier Zeichen als little-endian Byte-Reihenfolge unsigned long.
vFixnumBetrachten Sie zwei Zeichen als little-endian Byte-Reihenfolge unsigned short.
wIntegerBER komprimierte Ganzzahlen.
X Springen Sie ein Zeichen zurück.
x Springen Sie einen Zeichen vor.
ZStringund * Verwenden Sie gemeinsam, um trailingen null bis zum ersten null zu entfernen.
@ Springen Sie den vom length-Parameter angegebenen Offset über.

Online-Beispiel

Versuchen Sie die folgenden Beispiele, um verschiedene Daten zu entpacken.

"abc \0\0abc \0\0".unpack('A6Z6#=> ["abc", "abc "]
"abc \0\0".unpack('a3a3#=> ["abc", " \000\000"]
"abc \0abc \0".unpack('Z')*Z*
"aa".unpack('b')8B810000110", "01100001"]
"aaa".unpack('h')2H2c') => ['"']16", "61" 97]
"\xfe\xff\xfe\xff".unpack('sS') => [-2, 65534]
"now="20is".unpack('M')*
"whole".unpack('xax') => ['now is']2aX2aX1aX2a') => ['h', 'e', 'l', 'l', 'o']