efinf:blc2016:ruby:strings

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
efinf:blc2016:ruby:strings [2016/09/25 13:19] – [String Methoden] Ivo Blöchligerefinf:blc2016:ruby:strings [2016/09/25 13:26] (current) – [String Methoden] Ivo Blöchliger
Line 1: Line 1:
 +{{backlinks>.}}
 +===== String (Zeichenketten) =====
 +==== Initialisierung ====
 +<code ruby>
 +a = "abcd"
 +b = a           # Zwei Referenzen auf gleichen String!
 +b[1] = "X"      # Manipulation des einen Strings
 +puts a          # Ergibt "aXcd"
 +b = String.new(a)  # Kopie des Strings, unterschiedliche Referenzen
 +b[1] = "#"      
 +puts a        # "aXcd"
 +puts b        # "a#cd"
  
 +puts "Na "*14+"Batman!"
 +
 +puts "6*7=#{6*7}"
 +
 +<code>
 +
 +==== Zugriff und Manipulation ====
 +<code ruby>
 +a = "0123456"
 +puts a[2,3]  # "234"
 +puts a[2..4] # "234"
 +a[3..3] = "eingefügt"
 +puts a  # "012eingefügt456"
 +</code>
 +==== String Methoden ====
 +  * .split("," # Array mit Strings zwischen den Trennzeichen (hier ";")
 +<code ruby>
 +  daten_aus_datei = Array.new(10){Array.new(10){rand(100)}}.map{|e| e.join(",")}.join("\n")
 +  puts daten_aus_datei
 +  a = daten_aus_datei.split("\n").map{|line| line.split(",").map{|e| e.to_i}}
 +  p a
 +</code>
 +  * .each_byte, .each_char, .each_codepoint # Loops über Bytes, Symbole (Strings) und Codes (Zahlen)
 +  * .chomp # Ein "\n" am Ende entfernen (falls es dort eines hat).
 +<code ruby>
 +   p "abcd".chomp  # "abcd"
 +   p "abcd\n".chomp # "abcd"
 +   p "abcd\n\n".chomp # "abcd\n"
 +</code>
 +
 +Und viele weitere, z.T. sehr nützliche Methoden: https://ruby-doc.org/core-2.2.0/String.html