zoukankan      html  css  js  c++  java
  • String

    [] 中的索引

    a = "hello there"

    a[1]                   #=> "e"

    a[2, 3]                #=> "llo"

    a[2..3]                #=> "ll"

    a[-3, 2]               #=> "er"

    a[7..-2]               #=> "her"

    a[-4..-2]              #=> "her"

    a[-2..-4]              #=> ""

    a[12..-1]              #=> nil

    a[/[aeiou](.)1/]      #=> "ell"

    a[/[aeiou](.)1/, 0]   #=> "ell"

    a[/[aeiou](.)1/, 1]   #=> "l"

    a[/[aeiou](.)1/, 2]   #=> nil

    a["lo"]                #=> "lo"

    a["bye"]               #=> nil

    索引不但支持 用范围

    还支持 逗号分隔的两个参数(1st=首索引,2nd==长度)

    支持 负索引

    支持 正则

    str[fixnum] = new_str

    str[fixnum, fixnum] = new_str

    str[range] = aString

    str[regexp] = new_str

    str[regexp, fixnum] = new_str

    str[regexp, name] = new_str

    str[other_str] = new_str

    按字节处理bytes

    byte切片

    byteslice(fixnum) new_str or nil

    byteslice(fixnum, fixnum) new_str or nil

    byteslice(range) new_str or nil

    bytesize integer    Returns the length of str in bytes.

    bytes {|fixnum| block } str

    bytes an_enumerator

    用正则替换

    sub/gsub

    "hello".gsub(/[aeiou]/, '*')                  #=> "h*ll*"

    "hello".gsub(/([aeiou])/, '<1>')             #=> "h<e>ll<o>"

    "hello".gsub(/./) {|s| s.ord.to_s + ' '}      #=> "104 101 108 108 111 "

    "hello".gsub(/(?<foo>[aeiou])/, '{k<foo>}')  #=> "h{e}ll{o}"

    'hello'.gsub(/[eo]/, 'e' => 3, 'o' => '*')    #=> "h3ll*"

    match

    'hello'.match('(.)1')      #=> #<MatchData "ll" 1:"l">

    'hello'.match('(.)1')[0]   #=> "ll"

    'hello'.match(/(.)1/)[0]   #=> "ll"

    'hello'.match('xx')         #=> nil

    partition

    partition(sep) [head, sep, tail] click to toggle source

    partition(regexp) [head, match, tail]

    scan

    a = "cruel world"

    a.scan(/w+/)        #=> ["cruel", "world"]

    a.scan(/.../)        #=> ["cru", "el ", "wor"]

    a.scan(/(...)/)      #=> [["cru"], ["el "], ["wor"]]

    a.scan(/(..)(..)/)   #=> [["cr", "ue"], ["l ", "wo"]]

    字符串转symbol

    intern symbol

    "Koala".intern         #=> :Koala

    s = 'cat'.to_sym       #=> :cat

    s == :cat              #=> true

    s = '@cat'.to_sym      #=> :@cat

    s == :@cat             #=> true

    upto/downto/times/Range.each

     

     

     

     

  • 相关阅读:
    Android studio ButterKnife插件
    Android Studio Prettify 插件
    Android studio的主题颜色修改
    MeasureSpec 的三中类型
    android 加载远程Jar、APK
    android源码 键盘消息处理机制
    Android源码阅读笔记二 消息处理机制
    phpstrom 激活
    sublime vue 语法高亮插件安装
    mysql登录报错“Access denied for user 'root'@'localhost' (using password: YES”的处理方法
  • 原文地址:https://www.cnblogs.com/lizunicon/p/4974847.html
Copyright © 2011-2022 走看看