Google

$BA0(B - $B>e(B - $B - $BL\

String

$BJ8;zNs%/%i%9!%(BString$B%/%i%9$OG$0U$ND9$5$N%P%$%H(B $BNs$r07$&$3$H$,$G$-$^$9!%(B

String$B%/%i%9$N%a%=%C%I$K$OL>A0$,(B `!'$B$G=*$k$b$N$,$"$j$^$9!%$3$l$i$N%a%=%C%I$OJ8;z(B $BNs$NCf?H$rD>@\JQ99$9$k$b$N$G$9!%(B`!'$B$N$D$$$F$$$J(B $B$$F1$8L>A0$N%a%=%C%I$OJ8;zNs$N%3%T!<$r:n$C$F$=$A$i$r99?7$7$^(B $B$9$N$G$d$dCY$$$G$9$,!$$h$j0BA4$G$9!%Nc$($P(B:

f = "string"
print f, f.sub("str", "ski"), f
       => string, skiing, string
print f, f.sub!("str", "ski"), f
       => skiing, skiing, skiing

$B%9!<%Q!<%/%i%9(B:

Object

$B%$%s%/%k!<%I$7$F$$$k%b%8%e!<%k(B:

Comparable
Enumerable

$B%/%i%9%a%=%C%I(B:

new(string)

string$B$HF1$8FbMF$N?7$7$$J8;zNs$rJV$7$^$9!%(B

$B%a%=%C%I(B:

self + other

$BJ8;zNs$N7k9g$r9T$$$^$9!%(B

self * times

$BJ8;zNs$N7+$jJV$7!%Nc$($P(B"x" * 4$B$O(B"xxxx" $B$rJV$7$^$9!%(B

self % args

$BJ8;zNs$N%U%)!<%^%C%H!%(Bsprintf(self, *args)$B$H(B $B$[$\F1$8!%(B

self == other
self > other
self >= other
self < other
self <= other

$BJ8;zNs$NHf3S!%JQ?t(B$=$B$NCM$,56$G$"$k;~!$Hf3S$O%"(B $B%k%U%!%Y%C%H$NBgJ8;z>.J8;z$rL5;k$7$F9T$o$l$^$9!%(B

self << other

$BJ8;zNs$X$NFbMF$NDI2C!%(B

self =~ other

$B@55,I=8=$N%^%C%A$r9T$$$^$9!%%^%C%A$,@.8y$9$l$P%^%C%A$7$?0LCV(B $B$N%$%s%G%C%/%9$r!$$=$&$G$J$1$l$P(Bnil$B$rJV$7$^$9!%(B other$B$,J8;zNs$G$"$C$?>l9g$K$O@55,I=8=$X$N%3%s%Q%$(B $B%k$,9T$o$l$^$9!%(B

~ self

$_ =~ self$B$HF1$8$G$9!%(B

self[nth]

nth$BHVL\$NJ8;z(B($BJ8;z%3!<%I$r<($9(BFixnum)$B$rJV$7$^$9!%(B

self[start..last]

start$BHVL\$NJ8;z$+$i(Blast$BHVL\$NJ8;z$^$G(B $B$NItJ,J8;zNs$rJV$7$^$9!%ItJ,J8;zNs$ON>C<$r4^$_$^$9!%(B

self[start, length]

start$B$+$iD9$5(Blength$B$@$1ItJ,J8;zNs$rJV(B $B$7$^$9!%(B

self[nth] = val

nth$BHVL\$NJ8;z$r(Bval$B$KJQ99$7$^$9!%J8;zNs(B $B$,%U%j!<%:$5$l$F$$$k;~$K$ONc30$,H/@8$7$^$9!%(B

self[start..last] = val

start$B$+$i(Blast$B$^$G$NItJ,J8;zNs$r(B val$B$KCV$-49$($^$9!%(B

self[beg, len] = val

start$B$+$iD9$5(Blength$B$NItJ,J8;zNs$r(B val$B$KCV$-49$($^$9!%(B

self <=> other

self$B$H(Bother$B$r<-=q=g$GHf3S$7$F!$(B self$B$,Bg$-$$;~$K@5!$Ey$7$$;~$K#0!$>.$5$$;~$KIi(B $B$N@0?t$rJV$7$^$9!%(B

<<(other)
concat(other)

other$B$NFbMF$rDI2C$7$^$9!%(B

capitalize
capitalize!

$B@hF,$NJ8;z$,%"%k%U%!%Y%C%H$G$"$l$PBgJ8;z$KJQ99$7$^$9!%(B

chop
chop!

$BJ8;zNs$N:G8e$NJ8;z$rchop!$B$OJ8;zNs$=$N$b$N$rJQ99$7$^$9!%(B chop!$B$Onil$B$rJV$7$^$9!%(B

chomp([rs])
chomp!([rs])

$BJ8;zNs$NKvHx$+$i(Brs$B$G;XDj$9$k9T6h@Z$j$rrs$B$N%G%U%)%k%HCM$OJQ?t(B$/$B$NCM$G$9!%(B chomp!$B$OJ8;zNs$=$N$b$N$rJQ99$7$^$9!%(B chomp!$B$Onil$B$rJV$7$^$9!%(B

clone
dup

$BJ8;zNs$HF1$8FbMF$r;}$D?7$7$$J8;zNs$rJV$7$^$9!%%U%j!<%:$7$?J8(B $B;zNs$N(Bclone$B$O%U%j!<%:$5$l$?J8;zNs$rJV$7$^$9$,!$(B dup$B$OFbMF$NEy$7$$%U%j!<%:$5$l$F$$$J$$J8;zNs$rJV(B $B$7$^$9!%(B

crypt(salt)

crypt(3)$B$r;H$C$FJ8;zNs$r0E9f2=$7$^$9!%(B salt$B$O(B2$B%P%$%H0J>e$NG$0U$NJ8;zNs$r;XDj$7$^$9!%(B

delete(str)
delete!(str)

$BJ8;zNs$+$i(Bstr$B$K4^$^$l$kJ8;z$rstr$B$N7A<0$O(Btr(1)$B$HF1$8$G$9!%$D$^$j!$(B `a-c'$B$O(B`a'$B$+$i(B`c'$B$r0U(B $BL#$7!$J8;zNs$N@hF,$,(B`^'$B$N>l9g$OJ8;zNs$K4^$^$l$J$$J8;z(B $B$r:o=|$7$^$9!%(B delete!$B$Onil$B$rJV$7$^$9!%(B

downcase
downcase!

$BJ8;zNsCf$NBgJ8;z$r>.J8;z$KCV$-49$($^$9!%(B tr("A-Z","a-z")$B$h$j$b$A$g$C$HB.$=$&$G$9!%(B downcase!$B$OCV$-49$($,H/@8$7$J$+$C$?;~$K$O(B nil$B$rJV$7$^$9!%(B

dump

$BJ8;zNsCf$NHsI=<(J8;z$r%P%C%/%9%i%C%7%e5-K!$KCV$-49$($?J8;zNs$rJV$7(B $B$^$9!%(Bstr == eval(str.dump)$B$,J]>Z$5$l$^$9!%(B

each_byte {|byte|...}

$BJ8;zNsCf$N3F%P%$%H$KBP$7$F7+$jJV$7$^$9!%(B

each([rs]) {|line|...}
each_line([rs]) {|line|...}

$BJ8;zNsCf$N3F9T$KBP$7$F7+$jJV$7$^$9!%9T$N6h@Z$j$O(B rs$B$G;XDj$7$^$9!%(Brs$B$N%G%U%)%k%HCM$OJQ?t(B $/$B$NCM$G$9!%(B

empty?

$BJ8;zNs$,6u(B($B$D$^$jD9$5(B0)$B$N;~!$??$rJV$7$^$9!%(B

freeze

$BJ8;zNs$N99?7$r6X;_$7$^$9!%%U%j!<%:$5$l$?J8;zNs$NJQ99$ONc30$r(B $BH/@8$5$;$^$9!%(B

frozen?

$BJ8;zNs$,%U%j!<%:$5$l$F$$$k;~??$rJV$7$^$9!%(B

gsub(pattern, replace)
gsub!(pattern, replace)

$BJ8;zNsCf$G(Bpattern$B$K%^%C%A$9$kItJ,$rA4$F(Breplace$B$K(B $BCV$-49$($^$9!%CV49J8;zNs(Breplace$BCf$N(B`\&'$B$H(B `\0'$B$O%^%C%A$7$?ItJ,J8;zNs$K!$(B`\1...\9'$B$O(Bn$BHV(B $BL\$N3g8L$NFbMF$KCV$-49$($i$l$^$9!%CV49J8;zNsFb$G$O(B\`$B!$(B \'$B!$(B\+$B$b;H$($^$9!%$3$l$i$O(B $`$B!$(B $'$B!$(B$+$B$KBP1~$7$^$9!%(B

$BCm0U(B: replace$B$NCf$G(B $<digits>$B$O;H$($^$;$s!%$3$NJ8;zNs$,I>2A$5$l$k;~E@$G(B $B$O$^$@%^%C%A$,9T$o$l$F$$$J$$$+$i$G$9!%(B

gsub!$B$O85$NJ8;zNs$r=q$-49$($^$9!%CV49$,9T$J$o$l$J$+$C$?>l(B $B9g$O(Bnil$B$rJV$7$^$9!%0lJ}!$(Bgsub$B$OJ8;zNs$N%3%T!<(B $B$rJQ99$7$^$9!%%^%C%A$,@.8y$7$J$+$C$?>l9g$K$O85$NJ8;zNs$rJV$7$^$9!%(B

gsub(pattern) {...}
gsub!(pattern) {...}

gsub$B$H(Bgsub!$B$O%V%m%C%/$r;XDj$7$F8F$S=P$5$l$?(B $B;~$K$O!$A4$F$N%^%C%A$7$?ItJ,$r%V%m%C%/$rI>2A$7$?CM$GCV$-49$($^$9!%%V%m%C(B $B%/$NCf$G$OJQ?t(B$<digits>$B$r;2>H$G$-$^$9!%%^%C%A$7$?It(B $BJ,J8;zNs$,%V%m%C%/$N0z?t$H$7$FEO$5$l$^$9!%(B

hex

$BJ8;zNs$r(B16$B?JJ8;zNs$G$"$k$H2r

index(substr[, pos])

$BJ8;zNsCf$N(Bsubstr$B$N%$%s%G%C%/%9$rJV$7$^$9!%$b$78+IU$+$i$J$1(B $B$l$P(Bnil$B$rJV$7$^$9!%(Bpos$B$,M?$($i$l$?;~$K$O$=$N(B $B0LCV$+$i8!:w$r3+;O$7$^$9!%(Bsubstr$B$OJ8;zNs!$J8;z%3!<%I$r<($9(B $B@0?t!$@55,I=8=$N$$$:$l$+$r;XDj$7$^$9!%(B

intern

$BJ8;zNs$KBP1~$9$k%7%s%\%kCM(B(Fixnum)$B$rJV$7$^$9!%J8;zNs$O%J%k%-%c%i%/%?(B ('\0')$B$r4^$`$3$H$,$G$-$^$;$s!%(B

length
size

$BJ8;zNs$ND9$5$rJV$7$^$9!%(B

ljust(width)
rjust(width)
center(width)

$B$=$l$>$l:85M$a!$1&5M$a!$Cf1{4s$;$7$?J8;zNs$rJV$7$^$9!%J8;zNs$ND9$5$,(B width$B$h$jD9$$;~$K$O85$NJ8;zNs$r$=$N$^$^JV$7$^$9!%(B

oct

$BJ8;zNs$r(B8$B?JJ8;zNs$G$"$k$H2r/^[0-7]+/)$B$G$J$$;~$K$O(B0$B$rJV$7$^$9!%(B

reverse
reverse!

$BJ8;zNs$r$R$C$/$jJV$7$^$9!%(B

replace(other)

$BJ8;zNs$NFbMF$r(Bother$B$NFbMF$GCV$-49$($^$9!%(B

rindex(substr[, pos])

$BJ8;zNsCf$N:G8e$N(Bsubstr$B$N0LCV$rJV$7$^$9!%$b$78+IU$+$i$J$1$l(B $B$P(Bnil$B$rJV$7$^$9!%(Bpos$B$,M?$($i$l$?;~$K$O$=$N0LCV(B $B$+$i8!:w$r3+;O$7$^$9!%(Bsubstr$B$OJ8;zNs!$J8;z%3!<%I$r<($9(B $B@0?t!$@55,I=8=$N$$$:$l$+$r;XDj$7$^$9!%(B

scan(re)
scan(re) {...}

re$B$GM?$($i$l$k@55,I=8=$rJ8;zNs$KBP$7$F7+$jJV$7%^%C(B $B%A$r9T$$!$@55,I=8=Cf$N3g8L$G3g$i$l$?ItJ,$K%^%C%A$7$?J8;zNs$r(B $BG[Ns$H$7$FJV$7$^$9!%@55,I=8=$,3g8L$r4^$^$J$$>l9g$O%^%C%A$7$?(B $BItJ,J8;zNs$NG[Ns$rJV$7$^$9!%%V%m%C%/$r;XDj$7$F8F$S=P$5$l$?;~$K(B $B$O!$3g8L$G3g$i$l$?ItJ,$K%^%C%A$9$kItJ,J8;zNs(B($B3g8L$r4^$^$J$$(B $B>l9g$O%^%C%AA4BN(B)$B$r%V%m%C%/$N%Q%i%a!<%?$H$7$^$9!%(B

split([sep[, limit]])

$BJ8;zNs$r(Bsep$B$G;XDj$5$l$?%Q%?!<%s$K$h$C$FJ,3d$7$FG[Ns$K3JG<$7(B $B$^$9!%(Bsep$B$,>JN,$5$l$?;~$N%G%U%)%k%H$O%7%9%F%`JQ?t(B $;$B$NCM$,MQ$$$i$l$^$9!%(B$;$B$NCM$,(B nil$B$N;~$K$O@hF,$N6uGr$r=|$$$F6uGr$GJ,3d$r9T$$$^$9!%(B

limit$B$,>JN,$5$l$?;~$K$OG[NsKvHx$N6uJ8;zNs$Olimit$B$,;XDj$5$l$F!$$=$NCM$,Ii$G$J$$;~$K$O:GBg(B limit$B8D$N%U%#!<%k%I$KJ,3d$7$^$9!%(B limit$B$NCM$,Ii$N;~$K$OL58B$KBg$-$$(Blimit $B$,;XDj$5$l$?$+$N$h$&$KJ,3d$7$^$9!%(B

sep$B$G;XDj$5$l$?%Q%?!<%s$,6uJ8;zNs$H%^%C%A$9$k>l9g$OJ8;zNs$,(B 1$BJ8;z$:$D$KJ,3d$5$l$^$9!%Nc$($P(B:

print 'hi there'.split(/ */).join(':');
	=> h:i:t:h:e:r:e

squeeze([str])
squeeze!([str])

str$B$K4^$^$l$kF10l$NJ8;z$NJB$S$r$R$H$D$K$^$H$a$^$9!%(B squeeze!$B$OJ8;zNs$rJQ99$7$J$+$C$?;~$K$O(B nil$B$rJV$7$^$9!%(B

strip
strip!

$B@hF,$HKvHx$N6uGr(B(whitespace)$B$rstrip!$B$OJ8;zNs$rJQ99$7$J$+$C$?;~$K$O(B nil$B$rJV$7$^$9!%(B

sub(pattern, replace)
sub!(pattern, replace)

$BJ8;zNsCf$G(Bpattern$B$K:G=i$K%^%C%A$9$kItJ,$r(Breplace $B$KCV$-49$($^$9!%CV49J8;zNs(Breplace$BCf$N(B`\&' $B$H(B`\0'$B$O%^%C%A$7$?ItJ,J8;zNs$K!$(B`\1...\9'$B$O(Bn $BHVL\$N3g8L$NFbMF$KCV$-49$($i$l$^$9!%CV49J8;zNsFb$G$O(B\`$B!$(B \'$B!$(B\+$B$b;H$($^$9!%$3$l$i$O(B $`$B!$(B $'$B!$(B$+$B$KBP1~$7$^$9!%(B

$BCm0U(B: replace$B$NCf$G(B $<digits>$B$O;H$($^$;$s!%$3$NJ8;zNs$,I>2A$5$l$k;~E@$G(B $B$O$^$@%^%C%A$,9T$o$l$F$$$J$$$+$i$G$9!%(B

sub!$B$O85$NJ8;zNs$r=q$-49$($^$9!%CV49$,9T$J$o$l$J$+$C$?>l(B $B9g$O(Bnil$B$rJV$7$^$9!%0lJ}!$(Bsub$B$OJ8;zNs$N%3%T!<(B $B$rJQ99$7$^$9!%%^%C%A$,@.8y$7$J$+$C$?>l9g$K$O85$NJ8;zNs$rJV$7$^$9!%(B

sub(pattern) {...}
sub!(pattern) {...}

sub$B$H(Bsub!$B$O%V%m%C%/$r;XDj$7$F8F$S=P$5$l$?;~(B $B$K$O!$:G=i$K%^%C%A$7$?ItJ,$r%V%m%C%/$rI>2A$7$?CM$GCV$-49$($^$9!%%V%m%C(B $B%/$NCf$G$OJQ?t(B$<digits>$B$r;2>H$G$-$^$9!%%^%C%A$7$?It(B $BJ,J8;zNs$,%V%m%C%/$N0z?t$H$7$FEO$5$l$^$9!%(B

succ
succ!

$B0J2<$N$h$&$J(B$B$B$NJ8;zNs$rJV$7$^$9!%(B

"aa".succ => "ab"
"99".succ => "100"
"a9".succ => "b0"
"Az".succ => "Ba"
"zz".succ => "aaa"

succ!$B$OJ8;zNs$NFbMF$rGK2uE*$K=$@5$7$^$9!%(B

sum([bits])

$BJ8;zNs$N(Bbits$B%S%C%H$N%A%'%C%/%5%`$r7W;;$7$^$9!%(B bits$B$N>JN,CM$O(B16$B$G$9!%Nc$($P!$0J2<$N%3!<%I$G(BSystem V$B$N(B sum$B%W%m%0%i%`$HF1$8CM$rF@$i$l$^$9!%(B

sum = 0
while gets
  sum += $_.sum
end
sum %= 65536

swapcase
swapcase!

$BA4$F$NBgJ8;z$r>.J8;z$K!$>.J8;z$rBgJ8;z$KJQ99$7$^$9!%(B swapcase!$B$OCV$-49$($,H/@8$7$J$+$C$?;~$K$O(B nil$B$rJV$7$^$9!%(B

to_f

$BJ8;zNs$r(BFloat$B$KJQ49$7$^$9!%(B

to_i

$BJ8;zNs$r(B10$B?J$G2r

tr(search, replace)
tr!(search, replace)

$BJ8;zNs$NCf$K(Bsearch$BJ8;zNs$K4^$^$l$kJ8;z$,B8:_$9$l$P!$(B replace$BJ8;zNs$NBP1~$9$kJ8;z$GCV$-49$($^$9!%(B search$BJ8;zNs$N:G=i$NJ8;z$,(B^$B$G$"$k>l9g!$(B $BB3$/J8;zNs$K(B$B4^$^$l$J$$(B$BJ8;zNs$,CV49$NBP>]$K$J$j$^$9!%(B

tr!$B$OJ8;zNs$rJQ99$7$J$+$C$?;~$K$O(B nil$B$rJV$7$^$9!%(B

tr_s(search, replace)
tr_s!(search, replace)

$BJ8;zNs$NCf$K(Bsearch$BJ8;zNs$K4^$^$l$kJ8;z$,B8:_$9$l$P!$(B replace$BJ8;zNs$NBP1~$9$kJ8;z$GCV$-49$($^$9!%(B $BCV49$7$?ItJ,$KF10l$NJ8;z$NJB$S$r(B1$BJ8;z$K05=L$7$^$9!%(B tr$BF1MM!$(B search$BJ8;zNs$N:G=i$NJ8;z$,(B^$B$G$"$k>l9g!$(B $BB3$/J8;zNs$K(B$B4^$^$l$J$$(B$BJ8;zNs$,CV49$NBP>]$K$J$j$^$9!%(B

tr_s!$B$OJ8;zNs$rJQ99$7$J$+$C$?;~$K$O(B nil$B$rJV$7$^$9!%(B

unpack(template)

$B%Q%C%/$5$l$?(B($B$*$=$i$/$O(B Array#pack$B$K$h$C(B $B$F@8@.$5$l$?(B)$BJ8;zNs$r(Btemplate$BJ8;zNs$K$7$?$,$C$F%"(B $B%s%Q%C%/$7!$$=$l$i$NMWAG$r4^$`G[Ns$rJV$7$^$9!%(B template$BJ8;zNs$O(BArray#pack$B$H$[$\F1MM(B $B$G!$0J2<$NDL$j$G$9!%(B

a
ASCII$BJ8;zNs(B($B8eB3$9$k(Bnull$BJ8;z$d%9%Z!<%9$r;D$9(B)
A
ASCII$BJ8;zNs(B($B8eB3$9$k(Bnull$BJ8;z$d%9%Z!<%9$r:o=|(B)
b
$B%S%C%H%9%H%j%s%0(B($B2<0L%S%C%H$+$i>e0L%S%C%H(B)
B
$B%S%C%H%9%H%j%s%0(B($B>e0L%S%C%H$+$i2<0L%S%C%H(B)
h
16$B?JJ8;zNs(B($B2<0L%K%V%k$,@h(B)
H
16$B?JJ8;zNs(B($B>e0L%K%V%k$,@h(B)
c
char
C
unsigned char
s
short
S
unsigned short
i
int
I
unsigned int
l
long
L
unsigned long
m
base64$B$5$l$?J8;zNs(B
n
$B%M%C%H%o!<%/%P%$%H%*!<%@!<$N(Bshort
N
$B%M%C%H%o!<%/%P%$%H%*!<%@!<$N(Blong
v
$B%j%H%k%(%s%G%#%"%s(B(Intel($B$^$?$O(BVax)$B%U%)!<%^%C%H(B)$B$N(Bshort
V
$B%j%H%k%(%s%G%#%"%s(B(Intel($B$^$?$O(BVax)$B%U%)!<%^%C%H(B)$B$N(Blong
f
$BC1@:EYIbF0>.?tE@?t(B($B5! d
$BG\@:EYIbF0>.?tE@?t(B($B5! p
$B%J%k=*C<$NJ8;zNs$X$N%]%$%s%?(B
P
$B9=B$BN(B($B8GDjD9J8;zNs(B)$B$X$N%]%$%s%?(B
u
uuencod$B$5$l$?J8;zNs(B
x
1$B%P%$%HFI$_Ht$P$9(B
X
1$B%P%$%H8eB`(B
@
$B@dBP0LCV$X$N0\F0(B
upcase
upcase!

$B>.J8;z$rA4$FBgJ8;z$K$9$k!%(Btr("a-z", "A-Z")$B$h$j$b$A$g$C$H(B $BB.$=$&$G$9!%(B

upcase!$B$OCV$-49$($,H/@8$7$J$+$C$?;~$K$O(B nil$B$rJV$7$^$9!%(B

upto(max) {...}

self$B$+$i;O$^$C$F!$(Bmax$B$^$G(B$B$B$N(B $BJ8;zNs$r=g$K7+$jJV$7$^$9!%(B$B$B$NDj5A$K$D$$$F$O(B succ$B$r;2>H$7$F$/$@$5$$!%(B $B$3$N%a%=%C%I$O(B Range#each $B$NFbIt$GMQ$$$i$l$F$$$k$N$G!$0J2<$N$h$&$J%3!<%I$O(B:

     for i in "a" .. "ba"
       print i, "\n"
     end
`a, b, c,...z,aa,...az, ba'$B$r=PNO$7$^$9!%(B


$BA0(B - $B>e(B - $B - $BL\

matz@netlab.co.jp