一.字符串创建

  1. 单引号包含,不支持转义符和内嵌表达式#{}(插值符)

    str  = 'hello world!'
  2. 双引号包含
    str = "hello world!"
  3. 使用%,%Q,%q(后面跟上<>, {}, ||, []等)
    str = %|\there is test!|
    puts str #=> here is test! str = %Q|\there is test!|
    puts str #=> here is test! str = %q|\there is test!|
    puts str #=> \there 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出现次数

ruby 数据类型String的更多相关文章

  1. 雷林鹏分享:Ruby 数据类型

    Ruby 数据类型 本章节我们将为大家介绍 Ruby 的基本数据类型. Ruby支持的数据类型包括基本的Number.String.Ranges.Symbols,以及true.false和nil这几个 ...

  2. Ruby 数据类型

    Ruby 数据类型 本章节我们将为大家介绍 Ruby 的基本数据类型. Ruby支持的数据类型包括基本的Number.String.Ranges.Symbols,以及true.false和nil这几个 ...

  3. C#数据类型-string

    string是各种编程语言中最基础的数据类型,长期以来受尽其它类的压迫,经常被肢解(Substring.Split).蹂躏(Join)... 而现在C#数据类型string要“翻身闹革命”了,它几乎无 ...

  4. JS基础_数据类型-String类型

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  5. 5、Redis五大基本数据类型——String类型

    一.Redis支持数据类型简介 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 二.String类 ...

  6. ruby 数据类型Number

    Ruby支持的数据类型包括基本的Number.String.Ranges.Symbols,以及true.false和nil这几个特殊值,同时还有两种重要的数据结构——Array和Hash 数值类型(N ...

  7. ruby 学习 -- string --1

    # define french_string = "il \xc3\xa9tait une fois" long_string = <<EOF Here is a lo ...

  8. Redis数据类型--string

    在Redis中支持丰富的数据类型的存储系统,包括:字符串(string),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets),与范围查询,bitmaps,h ...

  9. JavaScript数据类型 String字符串类型

    前言 javascript没有表示单个字符的字符型,只有字符串String类型,字符型相当于仅包含一个字符的字符串 字符串String是javascript基本数据类型,同时javascript也支持 ...

随机推荐

  1. 基本类型int强转short时发生了什么?

    我们知道java中一个int类型占32bits(4字节),一个short占16bits(2字节)强制转换时只取低16位(short类型占的那16位),高16位(去掉低位多出来的那部分)属于溢出不计算, ...

  2. 国家与大洲对应关系json数据

    [ { "continent_cname": "欧洲", "continent_name": "EU", "c ...

  3. Spring中<context:annotation-config/>的作用

    spring中<context:annotation-config/>配置的作用,现记录如下: <context:annotation-config/>的作用是向Spring容 ...

  4. sqlplus中设置在屏幕中上不打印出输出

    在某些特定的情况下我们想在做某种实验,需要执行一段sql语句,但是不想在屏幕上打印出sql语句的结果(太长了)可以采用如下方式.1    把想要执行的语句写到一个sql脚本中,例如:[oracle@i ...

  5. 【2017-06-06】Qt中的键盘事件:QKeyEvent及相关处理函数

    QKeyEvent及其相关的处理函数,比如QKeyPressEvent.QKeyReleaseEvent()等在QtGui编程中非常常用,尤其是需要借助标准键盘的编码来实现一些自定义功能的时候. 这算 ...

  6. 【[SDOI2008]洞穴勘测】

    题目 由于始终保证连通性于是我们可以用\(LCT\)来维护这个森林 三个操作分别是\(link,cut,findroot\) 代码 #include<iostream> #include& ...

  7. 【[HAOI2008]木棍分割】

    没写过几道的前缀和优化\(dp\) 第一问是小学生难度的二分 第二问就直接\(dp\)了 设\(dp[i][j]\)表示当前分割点在\(i\)之后,前面一共分割了\(j\)段的方案数 利用前缀和单调性 ...

  8. (第三场) H Diff-prime Pairs 【数论-素数线性筛法+YY】

    题目链接 题目描述 Eddy has solved lots of problem involving calculating the number of coprime pairs within s ...

  9. 2018.12.25 Spring中JDBCTemplate模版API学习

    1 Spring整合JDBC模版 1.1 spring中土拱了一个可以操作数据库的对象.对象封装了jdbc技术 JDBCTemplateJDBC模板对象 1.2 与DBUtils中的QueryRunn ...

  10. 如何在vue2.0项目中引用element-ui和echart.js

    1 项目中怎样添加elment-ui 和 echart.js 1.1直接在packjson 里面的 dependencies 配置 "element-ui": "^1.3 ...