superclass=Object
type=class
library=_builtin
extended=
included=Comparable

ʸΥ饹Ǥ
NUL ʸޤǤդΥХ򰷤ȤǤޤ
ʸĹˤϥ̰ʳ¤Ϥޤ

ʸ̾ʸƥȤäޤ
ʲʸƥ򤤤Ĥޤ

  'str\\ing'   # 󥰥륯ʸ (ץ󥹤̵ۤ)
  "string\n"   # ֥륯ʸ (ץ󥹤٤ͭ)
  %q(str\\ing) # %qʸ (ץ󥹤̵ۤǥߥѤ)
  %Q(string\n) # %Qʸ (ץ󥹤٤ͭǥߥѤ)

  # ҥɥ
  <<End
  ιԤϥҥɥ
  End

  # ֥륯ȥҥɥ (ȤʤξƱ)
  <<"End"
  ιԤϥҥɥ
  End

  # 󥰥륯ȥҥɥ (ڤΥץ󥹤̵)
  <<'End'
  ιԤϥҥɥ
  End

  # ü椬ǥȤ줿ҥɥ
  # 󥰥륯ȡ֥륯ȤȤʻѤǽ
  <<-End
  ιԤϥҥɥ (ü򥤥ǥȤǤ)
     End

=== ˲Ūѹ

Ruby  String 饹 mutable Ǥ
Ĥޤꡢ֥ȼΤ˲ŪѹǤޤ

˲ŪѹפȤϡ륪֥ȤƼΤѲ뤳ȤǤ
㤨ʸΤ٤Ƥʸ˲Ūʸѹ
[[m:String#upcase!]] ᥽åɤλʲ˼ޤ

  a = "string"
  b = a
  a.upcase!
  p a   # => "STRING"
  p b   # => "STRING"

Ǥϡa Фƥ᥽åɤƤˤؤ餺 b ѹƤޤ
ϡѿ a  b Ĥʸ󥪥֥ȤؤƤơ
upcase! ᥽åɤǤΥ֥ȼΤѹ줿Ǥ

upcase! ˲ǤǤ [[m:String#upcase]] Ȥäʲ˼ޤ
Ǥ a ѹ b ȵڤޤ

  a = "string"
  b = a
  a = a.upcase
  p a   # => "STRING"
  p b   # => "string"

̤ˤϡ˲Ū֤ǤϤʤץ᥽åɤ
濴˻ȤäƤۤХФˤʤޤ

String 饹Υ᥽åɤˤ˲Ūʥ᥽åɤ˲Ūʥ᥽åɤ⤢ޤ
˲Ūʥ᥽åɤȤƤ concat, sub!, upcase! ʤɤ󤲤ޤ
˲Ūʥ᥽åɤȤƤ index, sub, upcase ʤɤ󤲤ޤ

Ʊư˲Ūʥ᥽åɤ˲Ūʥ᥽åɤξƤȤϡ
˲ŪʥСˤ̾κǸˡ!פդƤޤ
㤨 upcase ᥽åɤ˲Ūǡupcase! ᥽åɤ˲ŪǤ

̿̾롼
˲Ūʥ᥽åɤˤϤ٤ơ!٤դƤפȲᤷʤǤ
㤨 concat ˤϡ!פդƤޤ󤬡˲ŪǤޤǤ⡢
֡!٤դƤ᥽åɤդƤʤ᥽åɤξȤϡ
!٤դƤۤ˲ŪפȤǤ
֡!٤դƤʤ˲ŪפϾΩޤդɬΩޤ

=== ¿첽ʸΥ󥳡ǥ

String ֥ȤϼȤΥ󥳡ǥ󥰾ޤ
󥹥󥹥᥽åɤϥ󥳡ǥ󥰤˽1ХȤǤϤʤ1ʸñ̤Ȥưޤ
󥳡ǥ󥰤Ѵˤϥ᥽å [[m:String#encode]] Ȥޤ

:

  p "".size      #=> 3 
  p ""[0]          #=> ""
  p "ܻ".reverse   #=> "ܻ"
 
  s = "ruӡ"
  s[0..1] = "" 
  p s                  #=> "ӡ"
 
  e = "".encode("EUC-JP")
  u = "".encode("UTF-8")
  p e.encoding                   #=> Encoding::EUC_JP
  p u.encoding                   #=> Encoding::UTF_8

==== ʸƱΤӡ

ʸƱΤӡʤɤǤξԤΥ󥳡ǥ󥰤ռɬפޤ
㤨 [[m:String#==]] ξԤΥ󥳡ǥ󥰤Хɽ
ˤΤ true ֤ޤ
ΤȤ󥳡ǥ󥰤 UTF-8 ǤäƤӤޤ
ʸηƱͤǤۤʤ륨󥳡ǥƱΤʸ礹
Ū˥󥳡ǥ󥰤Ѵɬפޤ

:

  s = ""
  a = s.encode("EUC-JP")
  b = s.encode("UTF-8")
  p a == b                            #=> false
 
  s = "".encode("EUC-JP")
  p s + "\u{4f53}".encode("EUC-JP")   #=> ""
  p s + "\u{4f53}"                    #=> ArgumentError 

ϥåΥӤ˻Ȥ [[m:String#eql?]]  [[m:String#==]] ̾ǤʤΤǡ
ϥåΥ ASCII ʸȤˤդɬפǤ

:

  h = {}
  s = ""
  s.force_encoding("EUC-JP")
  h[s] = 1
  s.force_encoding("ASCII-8BIT")
  p h[s]                             #=> nil

==== 7bit ꡼ʸ

ASCII ߴ󥳡ǥ󥰤 7bit ꡼ʸ
󥳡ǥ󥰤˴ؤ餺 ASCII ȤưȤǤޤ
㤨 [[m:String#==]] ξԤʸ󥳡ǥ󥰤ۤʤäƤƤ
true ֤ޤ
ASCII ߴ󥳡ǥ󥰤ʸ˥󥳡ǥ󥰤ѴʤǷ礹뤳ȤǤޤ

:

  s = "abc"
  a = s.encode("EUC-JP")
  b = s.encode("UTF-8")
  p a == b                           #=> true
  p a + b                            #=> "abcabc"

ǸASCIIߴ󥳡ǥ󥰡פȤϡɥݥȤƱȤ̣ǤϤʤ
ХƱȤ̣ޤä UTF-16 ASCIIߴǤϤޤ
ޤ̩ɵ᤻͸ߴʤߴȸƤӤޤä Shift_JIS  ASCII ߴǤ

==== Хɽʸ

ʸǤϤʤñʤХ String ֥Ȥɽޤ
λΥ󥳡ǥ󥰤 ASCII-8BIT Ǥ
