zoukankan      html  css  js  c++  java
  • ruby 数据类型String

    一.字符串创建

    1. 单引号包含,不支持转义符和内嵌表达式#{}(插值符)
      str  = 'hello world!'
    2. 双引号包含
      str = "hello world!"
    3. 使用%,%Q,%q(后面跟上<>, {}, ||, []等)
      str = %|	here is test!|
      puts str     #=>     here is test!   
      
      str = %Q|	here is test!|
      puts str    #=>     here is test!
      
      str = %q|	here is test!|
      puts str    #=> 	here is test!

      %Q相当于" "创建字符串,%q相当于' '创建字符串
      使用场景:需要构造一个很长的字符串,而且包含有不少的单引号双引号

    4. HERE文档表示方法(特别适合表示多行的大段文字)
      str = <<HERE
      This is a here document!
      你可以在这块里输入"多行内容"
      HERE

      这里HERE必须写在行首,否则不会认为这是一个结束标识符
      str = <<-HERE
      This is a here document!
      你可以在这块里输入"多行内容"
      HERE
      <<-结束标识符,会忽略结束标识符前的空格,制表符;这样就不用写在行首了

      支持转义符和嵌入字符串

    二.基本操作

    • [] 字符串元素引用
      str = 'Element reference test'
      puts str[1] #=> l  
      puts str[0, 7]  #=> Element
      puts str[0..3]  #=> Elem
      puts str[-4, 4] #=> test
      puts str[/n([a-z])/]  #=> nt
      puts str[/n([a-z])/, 1] #=> t
      puts str['ref'] #=> ref
      puts str['hello'] #=> nil

      上面展示了str[int], str[int, int], str[range], str[regexp], str[regexp, int], str[string]这6种方法

    • []= 字符串元素赋值
      str = 'Element reference test'
      str[0] = 'e'
      puts str    #=> element reference test
      
      str[0, 7] = 'ABCD'
      puts str    #=> ABCD reference test
    • *, +, <<
      str = 'test'    
      puts str*3    #=> testtesttest
      puts str + '!'    #=> test! 
      puts str    #=> test
      puts str << '!'    #=> test!
      puts str    #=> test! <<会改变原有对象

    三.常用方法

    str.length, str.size  #=> 返回字符串长度
    str.concat(obj)  #=> 追加字符串,类似于<<
    str.capitalize  #=> 将字符串首写字母字符大写,其余字符小写
    str.delete(string)  #=> 删除字符串,并将删除部分返回
    str.each_byte{|int|...}  #=> 对字符串中每个字节进行迭代
    str.each_line{|line|...}  #=> 对字符串每行进行迭代
    str.strip  #=> 去除字符串收尾的非可见字符(空格)
    str.chop  #=> 移除str中的最后一个字符
    str.chomp  #=> 从字符串末尾移除记录分隔符 str.downcase  #=> 字符串转换为小写 str.upcase  #=> 字符串转换为大写 str.include?(obj)  #=> 如果包含字符串string则返回true,否则返回false str.index(string)  #=> 返回string字符串在字符串中首次出现的位置;rindex方法则从后开始检索 str.reverse  #=> 反转字符串 str.split(pattern,
    <limit>)  #=> 基于分隔符pattern将字符串str分割成若干个子字符串,并以数组形式返回 str.scan(pattern)  #=> 搜索出str中所有匹配pattern
    str.sub(pattern, replacement)  #=> 替换第一个匹配pattern的字符串为replacement
    str.gsub(pattern, replacement)  #=> 替换第所有匹配pattern的字符串为replacement
    str.count(string, ...)  #=> 统计string出现次数
  • 相关阅读:
    【leetcode】Recover Binary Search Tree
    【leetcode】Dungeon Game
    【leetcode】Text Justification
    【leetcode】Largest Number
    【leetcode】Merge k Sorted Lists
    【leetcode】Reverse Nodes in k-Group
    【leetcode】Multiply Strings
    【leetcode】Unique Binary Search Trees II
    hdu 1885 bfs+状压
    hdu 1429 bfs+状态压缩
  • 原文地址:https://www.cnblogs.com/wf0117/p/8908330.html
Copyright © 2011-2022 走看看