Datentypen konvertieren in Ruby

Einleitung

Jedes von Ihnen erstellte Programm wird mehrere Datentypen enthalten. Es ist jedoch wichtig zu bedenken, dass Sie im Allgemeinen Operationen innerhalb desselben Datentyps ausführen. Das bedeutet, dass Sie mathematische Operationen auf Zahlen durchführen oder Zeichenketten zusammenfügen.

Manchmal stammen Daten aus externen Quellen, wie der Tastatur, einer API-Antwort oder einer Datenbank, und Sie müssen sie konvertieren, um damit arbeiten zu können. Ruby bietet mehrere Methoden, um Werte von einem Datentyp in einen anderen zu konvertieren. In diesem Tutorial konvertieren Sie Zeichenketten in Zahlen, Objekte in Zeichenketten, Zeichenketten in Arrays und konvertieren zwischen Zeichenketten und Symbolen.

Datentypen konvertieren: Zeichenketten in Zahlen

Ruby bietet die Methoden to_i und to_f, um Zeichenketten in Zahlen zu konvertieren. to_i konvertiert eine Zeichenkette in eine Ganzzahl, und to_f konvertiert eine Zeichenkette in eine Fließkommazahl.

"5".to_i       # 5
"55.5".to_i    # 55
"55.5".to_f    # 55.5
  

Um dies zu demonstrieren, erstellen Sie ein kleines Programm, das nach zwei Zahlen fragt und die Summe anzeigt. Erstellen Sie ein neues Ruby-Programm namens adder.rb mit folgendem Code:

adder.rb
print "Was ist die erste Zahl? "
first_number = gets.chop

print "Was ist die zweite Zahl? "
second_number = gets.chop

sum = first_number + second_number

print sum
  

Wenn Sie das Programm ausführen, erhalten Sie möglicherweise eine unerwartete Antwort:

ruby adder.rb
Ausgabe
Was ist die erste Zahl? 5
Was ist die zweite Zahl? 5
55
  

Das Programm sagt, dass die Summe von 5 und 5 gleich 55 ist. Sie wissen, dass das nicht stimmt, aber der Computer hat technisch gesehen recht. Das Programm hat nach zwei Zahlen gefragt, aber Sie haben sie über die Tastatur eingegeben. Sie haben nicht die Zahl 5 gesendet, sondern das Zeichen „5“. Mit anderen Worten: Ihr Programm hat beide Eingaben als Zeichenketten betrachtet, und wenn Sie die Zeichenketten „5“ und „5“ zusammenfügen, erhalten Sie die neue Zeichenkette „55“.

Um dies zu vermeiden, konvertieren Sie beide Zeichenketten in Zahlen. Ändern Sie Ihr Programm so, dass es beide Zahlen mit der Methode to_f in Fließkommazahlen umwandelt:

adder.rb
print "Was ist die erste Zahl? "
first_number = gets.chop

print "Was ist die zweite Zahl? "
second_number = gets.chop

# Zeichenketten in Zahlen umwandeln
first_number = first_number.to_f
second_number = second_number.to_f

sum = first_number + second_number

print sum
  

Führen Sie das Programm erneut aus:

ruby adder.rb
Ausgabe
Was ist die erste Zahl? 5
Was ist die zweite Zahl? 5
10.0
  

Wenn Sie erneut 5 und 5 eingeben, erhalten Sie 10.0.

Besonderes Verhalten von to_i und to_f

Die Methoden to_i und to_f weisen einige interessante Verhaltensweisen auf, wenn die Zeichenketten nicht numerisch sind. Zum Beispiel:

"123-abc".to_i
Ausgabe
123
  

In diesem Beispiel ergibt die Konvertierung der Zeichenkette „123-abc“ in eine Ganzzahl die Ganzzahl 123. Die Methode to_i stoppt, sobald sie auf das erste nicht-numerische Zeichen stößt.

Datentypen konvertieren: Daten in Zeichenketten

Ruby bietet die Methode to_s, um jeden anderen Typ in eine Zeichenkette zu konvertieren:

25.to_s                    # "25"
(25.5).to_s                # "25.5"
["Sammy", "Shark"].to_s    # "[\"Sammy\", \"Shark\"]"
  

Oft konvertieren Sie Daten in Zeichenketten, um Programmausgaben zu erstellen.

Datentypen konvertieren: Zeichenketten in Arrays

Wenn Sie eine Zeichenkette haben, können Sie sie mit der Methode split in ein Array umwandeln:

"eins zwei drei".split
Ausgabe
["eins", "zwei", "drei"]
  

Konvertieren zwischen Zeichenketten und Symbolen

Um ein Symbol in eine Zeichenkette umzuwandeln, verwenden Sie die Methode to_s:

:language.to_s
Ausgabe
"language"
  

Um eine Zeichenkette in ein Symbol zu konvertieren, verwenden Sie die Methode to_sym:

"first_name".to_sym
Ausgabe
:first_name
  

Fazit

In diesem Tutorial haben wir demonstriert, wie man mehrere der wichtigsten nativen Datentypen mithilfe integrierter Methoden in andere Datentypen konvertiert. Sie können jetzt Zahlen in Zeichenketten, Zeichenketten in Arrays und zwischen Symbolen und Zeichenketten konvertieren.

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: