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出现次数
  • 相关阅读:
    datanode报错Problem connecting to server
    使用命令查看hdfs的状态
    Access denied for user root. Superuser privilege is requ
    ElasticSearch默认的分页参数 size
    SparkStreaming Kafka 维护offset
    【容错篇】Spark Streaming的还原药水——Checkpoint
    251 Android 线性与相对布局简介
    250 Android Studio使用指南 总结
    249 如何解决项目导入产生的中文乱码问题
    248 gradle更新问题
  • 原文地址:https://www.cnblogs.com/wf0117/p/8908330.html
Copyright © 2011-2022 走看看