sample.rb
str = "This is a string."
str["is"] = "is also" # 一致した最初の箇所を置換
p str
str[/this/i] = "That" # 一致した最初の箇所を置換
p str
p str.gsub(/\s/, '_') # 一致した箇所すべてを置換
str.gsub!(/\s/, '-') # 破壊的
p str
p str.gsub(/(\w+)/) { $1[0].upcase + $1[1..-1] } # ブロック版gsub (最後に評価された式で置換)
p str.tr 'a-z', 'A-Z' # a-zをA-Zで置換
出力例
$ ruby sample.rb
"This also is a string."
"That also is a string."
"That_also_is_a_string."
"That-also-is-a-string."
"That-Also-Is-A-String."
"THAT-ALSO-IS-A-STRING."
str = "This is a string."
p str + " That is also a string." # 非破壊的
str << " That is also a string." # 破壊的
p str
sample.rb
str = "blah "
str *= 3
p str
出力例
$ ruby sample.rb
"blah blah blah "
sample.rb
str = "This is a string."
array = str.split(//)
p array
出力例
$ ruby sample.rb
["T", "h", "i", "s", " ", "i", "s", " ", "a", " ", "s", "t", "r", "i", "n", "g", "."]
sample.rb
str = sprintf(" This is a %s. ", "string")
p str.strip
p str.strip.reverse
出力例
$ ruby sample.rb
"This is a string."
".gnirts a si sihT"
sample.rb
str,str2 = "this",""
str3 =<<EOS
First line.
Second line.
EOS
str.each_byte do |byte|
str2 << byte-32
end
str2.each_char do |char| # 多倍長文字に対応
p char.class # 長さ1のstring
p char
end
str3.each_line do |line|
p line
end
出力例
$ ruby sample.rb
String
"T"
String
"H"
String
"I"
String
"S"
"First line.\n"
"Second line.\n"
sample.rb
#!/usr/bin/ruby
# -*- coding: utf-8 -*-
File.open("sample.txt", 'w'){|f|
# 識別子の前に '-' を付与すると、
f.puts <<-EOS
こんばんは、はじめまして。
今は #{Time.now} です。
EOS
# 識別子をインデントできる
}
puts `cat sample.txt`
実行例
$ ruby hoge.rb | nkf -s
こんばんは、はじめまして。
今は 2014-02-03 01:24:41 +0900 です。