Ruby ist eine interpretierte, dynamische, reflektierende, objektorientierte Programmiersprache. Entwickelt von Yukihiro Matsumoto, konzentriert sich Ruby auf Einfachheit und Produktivität. Die elegante Syntax ermöglicht es Entwicklern, Code einfacher zu lesen und zu schreiben.
In dieser Anleitung werden wir mit Strings in Ruby arbeiten.
Voraussetzungen
Um die in diesem Tutorial gezeigten Schritte auszuführen, benötigen Sie die folgenden Komponenten:
- Ein ordnungsgemäß konfiguriertes Ubuntu-System. Erfahren Sie mehr über die Konfiguration Ihres eigenen Ubuntu-Servers auf CloudSigma.
- Jeder moderne Texteditor, vorzugsweise mit Syntax-Hervorhebung, zum Beispiel VS Code, Sublime Text, Atom, Brackets, Vim, etc.
Der Datentyp String
In der Programmierung ist ein String ein gängiger Datentyp, den jede moderne Programmiersprache unterstützt. Er zeichnet sich durch eine Folge von Zeichen aus. Die gesamte Zeichenfolge wird als ein einziges Datenelement behandelt. Ein String kann Buchstaben, Ziffern und Sonderzeichen/Symbole enthalten.
Da Ruby eine rein objektorientierte Programmiersprache ist, behandelt sie Strings als Objekte. Im Gegensatz zu vielen anderen Sprachen sind Strings in Ruby veränderlich. Im Grunde kann der String-Wert direkt vor Ort geändert werden.
Schritt 1 – Erstellen und Ausgeben von Strings
In Ruby werden Strings entweder in einfache Anführungszeichen ( ') oder doppelte Anführungszeichen ( ") eingeschlossen. Die folgenden sind zwei gültige Strings in Ruby:
|
1 2 |
'the quick brown fox' "jumps over the lazy dog" |
Um eine Ausgabe auf dem Konsolenbildschirm auszugeben, verfügt Ruby über die print-Methode:
|
1 2 |
print 'the quick brown fox' print "jumps over the lazy dog" |
Zeit, es in die Tat umzusetzen. Erstellen Sie eine neue Ruby-Datei practice.rb und geben Sie die folgenden Codes ein:
Führen Sie den Code aus:
|
1 |
ruby practice.rb |
Wie erwartet gibt der print-Befehl die bereitgestellten Strings aus. Wenn wir die Strings in separaten Zeilen ausgeben möchten, ist es besser, stattdessen puts zu verwenden. Aktualisieren Sie den Code:
|
1 2 |
puts 'the quick brown fox' puts "jumps over the lazy dog" |
Führen Sie den Code als Nächstes erneut aus:
|
1 |
ruby practice.rb |
Schritt 2 – String-Variablen
Variablen sind Namen, die sich auf einen bestimmten Platz im Computerspeicher beziehen, an dem ein Wert gespeichert ist. Wir können den gewünschten Wert in der Variable speichern und ihn später verwenden.
Um in Ruby eine String-Variable zu deklarieren, definieren Sie den Variablennamen und weisen Sie einen String-Wert zu:
|
1 |
<variable_name> = <string> |
Schreiben Sie den folgenden Code in practice.rb:
|
1 2 3 4 |
first_half = 'the quick brown fox' second_half = "jumps over the lazy dog" puts first_half puts second_half |
Führen Sie den Code aus:
|
1 |
ruby practice.rb |
Hier:
- Wir haben zwei Variablen definiert, first_half und second_half, denen jeweils ein String-Wert zugewiesen wurde.
- Die puts-Methode gibt den Wert der Variablen aus.
Schritt 3 – String-Verkettung
Durch Verkettung können wir mehrere Strings nehmen und sie miteinander verbinden, um einen neuen String zu erstellen. Die String-Verkettung wird durch den Verkettungsoperator ( +) gekennzeichnet. Beachten Sie, dass dieses Symbol bei arithmetischen Operationen auch der Additionsoperator ist.
Versuchen wir, eine String-Verkettung mit den Strings durchzuführen, die wir bisher deklariert haben:
|
1 |
puts "the quick brown fox" + "jumps over the lazy dog" |
Führen Sie den Code aus:
|
1 |
ruby practice.rb |
Wie die Ausgabe zeigt, fügt die Verkettung kein zusätzliches Zeichen zwischen den Strings ein. Deshalb werden fox und jumps zusammengeschrieben. Wir können dies beheben durch ein Leerzeichen nach fox:
|
1 |
puts "the quick brown fox " + "jumps over the lazy dog" |
Führen Sie den Code aus:
|
1 |
ruby practice.rb |
Jetzt sieht die Ausgabe besser aus.
Die String-Verkettung funktioniert auch mit Variablen. Sehen Sie sich das folgende Beispiel an:
|
1 2 |
first_half = "the quick brown fox " puts first_half + "jumps over the lazy dog" |
Führen Sie den Code aus:
|
1 |
ruby practice.rb |
Das nächste Beispiel zeigt eine lange Kette von Verkettungen:
|
1 2 3 |
username = "cloudsigma" fav_color = "blue" puts "hello, " + username + "! your favorite color is " + fav_color + "." |
Führen Sie den Code aus:
|
1 |
ruby practice.rb |
Bisher haben wir uns nur mit String-Variablen befasst. Was wäre, wenn es verschiedene Variablentypen gäbe? Das folgende Programm testet dieses Szenario:
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts username + user_id |
Beim Versuch, dieses Programm auszuführen, gibt Ruby eine Fehlermeldung aus:
|
1 |
ruby practice.rb |
Wir können jedoch die Ganzzahl (Integer) in einen String konvertieren, um dieses Problem zu vermeiden:
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts username + user_id.to_s |
Hier:
-
Die Methode to_s konvertiert den Variablenwert in einen String.
Das Konvertieren von Zahlen in Strings kommt häufig vor, wenn man mit Elementen wie Postleitzahlen, Währungen, Telefonnummern und anderen numerischen Daten arbeitet.
Schritt 4 – String-Interpolation
Obwohl die String-Verkettung eine leistungsstarke Funktion ist, kann sie sehr leicht knifflig werden. In vielen Situationen werden Sie wahrscheinlich feststellen, dass Ihnen ein Verkettungsoperator ( +) fehlt, was zu großem Kopfzerbrechen führt. Zudem müssen sie bei der Arbeit mit verschiedenen Datentypen zuerst in einen String konvertiert werden. Glücklicherweise bietet Ruby andere Möglichkeiten, Variablenwerte in einen String einzufügen, und zwar mithilfe der Funktion String-Interpolation.
So sieht das aus. Anstatt beispielsweise Folgendes zu verwenden:
|
1 |
"hello, " + username + "!" |
Werden wir Folgendes verwenden:
|
1 |
"hello, #{username}!" |
Obwohl die Syntax etwas seltsam aussehen mag, vereinfacht sie den Code drastisch. Es ist nicht erforderlich, die Methode to_s manuell aufzurufen, um den Variablenwert in einen String zu konvertieren.
Lassen Sie uns diese neue Technik verwenden, um unseren vorherigen Code zu aktualisieren:
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts "hello, #{username}! your user ID is #{user_id}" |
Führen Sie den Code aus:
|
1 |
ruby practice.rb |
Schritt 5 – String-Literale und String-Werte
Beachten Sie, dass im Code deklarierte Strings immer in Anführungszeichen gesetzt sind. Bei der Ausgabe auf dem Konsolenbildschirm fehlen jedoch die Anführungszeichen. Es gibt eindeutig einen Unterschied zwischen beiden.
- String-Literal: Es ist der im Quellcode geschriebene String (einschließlich der Anführungszeichen).
- String-Wert: Es ist der Wert, der in der Ausgabe ausgegeben wird (ohne die Anführungszeichen).
Das folgende ist beispielsweise ein String-Literal:
|
1 |
"hello world" |
Der String-Wert davon wäre hello world.
Schritt 6 – Maskierung von Anführungszeichen und Apostrophen
Wie wir gezeigt haben, werden Anführungszeichen und Apostrophe verwendet, um Strings im Quellcode zu kennzeichnen. Dies stellt ein Problem dar: Sie können sie nicht direkt im String verwenden. Andernfalls führt dies zu Problemen. Der folgende Code veranschaulicht dies:
|
1 |
puts 'it's what it is' |
Es gibt verschiedene Taktiken, um dieses Problem zu umgehen.
-
Verwendung einer alternativen String-Syntax
Dies ist der einfachste Weg, das Problem zu umgehen. Wenn Ihr String einfache Anführungszeichen benötigt, verwenden Sie doppelte Anführungszeichen im String-Literal (und umgekehrt).
Lassen Sie uns das vorherige Beispiel korrigieren:
|
1 |
puts "it's what it is" |
Ein weiteres Beispiel wäre:
|
1 |
puts 'he said, "hello world"' |
Dies wird jedoch nicht in jeder Situation funktionieren. Zum Beispiel:
|
1 |
puts "Clousdigma says, "I'm a happy boi!"" |
-
Verwendung von Escape-Zeichen
Der Backslash ( \) wird oft als Escape-Zeichen bezeichnet. Es verhindert, dass Ruby das nächste Zeichen wörtlich interpretiert. Lassen Sie uns das vorherige Beispiel korrigieren. Verwenden Sie den Backslash, um zu verhindern, dass Ruby die internen doppelten Anführungszeichen als Literale interpretiert:
|
1 |
puts "Cloudsigma says, \"I'm a happy boi!\"" |
-
Alternative Syntax verwenden
Bisher haben wir nur mit einfachen und doppelten Anführungszeichen gearbeitet, um das String-Literal zu kennzeichnen. Die vorherigen Beispiele zeigen jedoch auf einfache Weise, wie dies sehr schnell aus dem Ruder laufen kann. Um dieses Problem zu lösen, können wir die Anführungszeichen ganz weglassen und ein völlig anderes Symbol verwenden, um den Anfang und das Ende einer Zeichenkette zu kennzeichnen.
Schauen Sie sich das folgende Beispiel an:
|
1 |
%$the quick brown fox said, "I jumped over the lazy dog"$ |
Hier:
-
- Das Symbol % definiert das nächste Zeichen ( $, in diesem Fall) als Begrenzer der Zeichenkette.
- Das String-Literal hier ist $the quick brown fox said, "I jumped over the lazy dog"$.
Setzen wir es in die Tat um:
|
1 |
puts %$the quick brown fox said, "I jumped over the lazy dog"$ |
Hier wird die Zeichenkette im Grunde wie folgt behandelt:
|
1 |
"the quick brown fox said, \"I jumped over the lazy dog\"" |
Dies führt jedoch wieder zu dem Problem, dass der Begrenzer maskiert werden muss, wenn er in der Zeichenkette verwendet wird. Eine Möglichkeit, dies zu vermeiden, besteht darin, Symbole zu verwenden, die im Allgemeinen nicht in Zeichenketten vorkommen. Solche Symbole können geschweifte Klammern, eckige Klammern usw. sein:
|
1 |
puts %{"hello, world!", he said} |
Es funktioniert auch hervorragend mit String-Interpolationen:
|
1 2 3 |
username = "cloudsigma" user_id = 5 puts %{hello, #{username}.#{user_id}!} |
Es ist auch üblich, %Q{} und %q{} zu verwenden, um Zeichenketten in Ruby-Programmen zu definieren. Hier verhält sich %Q{} wie doppelte Anführungszeichen und %q{} wie einfache Anführungszeichen.
Schritt 7 – Zeilenumbrüche und lange Zeichenketten
Bei der Arbeit mit Zeichenketten gibt es Situationen, in denen Sie einen Zeilenumbruch (Newline) oder Wagenrücklauf (Carriage Return) in die Zeichenkette einfügen möchten. Dies können wir tun, indem wir die Escape-Zeichen \n (Newline) und \r (Carriage Return) einführen.
Schauen Sie sich das folgende Beispiel an:
|
1 2 |
hello_world = "the quick\nbrown fox\njumps over\nthe lazy dog" puts hello_world |
Das String-Literal sieht verwirrend aus, oder? Ordnen wir es für eine bessere Lesbarkeit neu an:
|
1 2 3 4 5 6 7 |
hello_world = "the quick\n" + "brown fox\n" + "jumps over\n" + "the lazy dog" puts hello_world |
Anstatt die Zeilenumbruchzeichen manuell zu deklarieren, können wir auch die folgende Struktur verwenden:
|
1 2 3 4 5 6 |
hello_world = "the quick brown fox jumps over the lazy dog" puts hello_world |
Bei dieser Methode behält die Zeichenkette alle Leerzeichen bei. Dies beeinträchtigt jedoch die Ausgabe. Entfernen Sie die zusätzlichen Leerzeichen, um das Problem zu beheben:
|
1 2 3 4 5 |
hello_world = "the quick brown fox jumps over the lazy dog" |
Obwohl das Problem mit den Leerzeichen behoben wurde, verringert es die Lesbarkeit des Codes. Wir können dieses Problem beheben, indem wir ein heredoc implementieren, ein Begriff für mehrzeilige String-Literale. Der aktualisierte Code würde so aussehen:
|
1 2 3 4 5 6 7 8 |
hello_world = <<-END the quick brown fox jumps over the lazy dog END puts hello_world |
Ab Ruby v2.3 und höher steht eine weitere Funktion zur Verfügung, die squiggly heredoc-Syntax genannt wird. Sie entfernt die führenden Leerzeichen in den Zeichenketten. Um ein squiggly Heredoc auszudrücken, ersetzen Sie den Bindestrich ( -) durch eine Tilde ( ~):
|
1 2 3 4 5 6 7 8 |
hello_world = <<~END der schnelle braune Fuchs springt über den faulen Hund END puts hello_world |
Schritt 8 – Replizieren von Strings
In manchen Situationen kann es notwendig sein, einen String mehrmals zu wiederholen. Ruby ermöglicht das Replizieren von Strings auf verschiedene Weise.
Eine solche Technik ist die Verwendung des *-Operators. Im Allgemeinen wird er bei Zahlen als Multiplikationsoperator verwendet. Bei Strings wird er jedoch zum String-Replikationsoperator, der den einzelnen String so oft wie nötig wiederholt. Die Anzahl der Wiederholungen muss eine ganze Zahl sein.
In dem folgenden Beispiel wird der Text Boris 5-mal wiederholt:
|
1 |
print "Boris" * 5 + "\n" |
Mit dieser Funktion können wir coole ASCII-Art erstellen. Sieh dir das folgende Beispiel an:
|
1 2 3 |
puts "=" * 15 puts "| Hallo Welt |" puts "=" * 15 |
Fazit
Strings sind in der Programmierung von grundlegender Bedeutung. Diese Anleitung zeigt die Arbeit mit Strings in Ruby. Wir haben gelernt, wie man Strings erstellt und verschiedene Operationen wie Konkatenation, den Umgang mit Zeilenumbrüchen, Anführungszeichen usw. durchführt. Mithilfe der String-Interpolation haben wir außerdem gelernt, wie man Variablenwerte besser in Strings integriert. Mit dem String-Replikationsoperator können wir einen einzelnen String auch mehrfach wiederholen.
Obwohl Ruby für sich genommen eine hervorragende Programmiersprache ist, wird sie oft mit dem Rails-Framework kombiniert. Ruby on Rails ist ein Open-Source-Web-App-Framework. Erfahre mehr über die Installation von Ruby on Rails auf Ubuntu. Ruby kann jedoch auch mit anderen Anwendungen wie MySQL und PostgreSQL.
Viel Spaß beim Programmieren!












































Kommentare
Noch keine Kommentare. Schreiben Sie den ersten.