ruby 数据类型String
一.字符串创建
- 单引号包含,不支持转义符和内嵌表达式#{}(插值符)
str = 'hello world!'
- 双引号包含
str = "hello world!"
- 使用%,%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相当于' '创建字符串
使用场景:需要构造一个很长的字符串,而且包含有不少的单引号双引号 - 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的更多相关文章
- 雷林鹏分享:Ruby 数据类型
Ruby 数据类型 本章节我们将为大家介绍 Ruby 的基本数据类型. Ruby支持的数据类型包括基本的Number.String.Ranges.Symbols,以及true.false和nil这几个 ...
- Ruby 数据类型
Ruby 数据类型 本章节我们将为大家介绍 Ruby 的基本数据类型. Ruby支持的数据类型包括基本的Number.String.Ranges.Symbols,以及true.false和nil这几个 ...
- C#数据类型-string
string是各种编程语言中最基础的数据类型,长期以来受尽其它类的压迫,经常被肢解(Substring.Split).蹂躏(Join)... 而现在C#数据类型string要“翻身闹革命”了,它几乎无 ...
- JS基础_数据类型-String类型
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 5、Redis五大基本数据类型——String类型
一.Redis支持数据类型简介 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 二.String类 ...
- ruby 数据类型Number
Ruby支持的数据类型包括基本的Number.String.Ranges.Symbols,以及true.false和nil这几个特殊值,同时还有两种重要的数据结构——Array和Hash 数值类型(N ...
- ruby 学习 -- string --1
# define french_string = "il \xc3\xa9tait une fois" long_string = <<EOF Here is a lo ...
- Redis数据类型--string
在Redis中支持丰富的数据类型的存储系统,包括:字符串(string),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets),与范围查询,bitmaps,h ...
- JavaScript数据类型 String字符串类型
前言 javascript没有表示单个字符的字符型,只有字符串String类型,字符型相当于仅包含一个字符的字符串 字符串String是javascript基本数据类型,同时javascript也支持 ...
随机推荐
- spark包
spark-assembly-1.5.2-hadoop2.6.0.jar http://blog.csdn.net/ronaldo4511/article/details/53035494 http: ...
- Android学习——ViewPager的使用(二)
这一节介绍使用FragmentPagerAdapter适配器,来加载Fragment对象. 数据源 加载Fragment对象时,数据源自然来自Fragment,与View类似,依旧使用List来存放数 ...
- #单元测试#以karma+mocha+chai 为测试框架的Vue webpack项目(二)
学习对vue组件进行单元测试,先参照官网编写组件和测试脚本. 1.简单的组件 组件无依赖,无props 对于无需导入任何依赖,也没有props的,直接编写测试案例即可. /src/testSrc/si ...
- May 13th 2017 Week 19th Saturday
Mountains look beautiful from a distance. 远处看山山更美. This gnomic seems to circulate very long, its mor ...
- 纠结的一天 —— 由base64编解码与加号、空格引起
2014年3月14日,星期五, 23点22分 忙碌.焦头烂额.充实而又幸福的一天! 写在篇头的话: 许多时候,别人分享的经验(成功或失败),个中滋味,听者很难真正体会,直到自己遇到的那一瞬间,才会泪如 ...
- git多站点多用户情况下SSH配置
个人使用github,但是公司使用的是 GitLab .那么在一个电脑上进行处理时,由于先设置了 github 的,导致没办法从 GitLab 上处理 git .其实是由于 ssh 的问题. 下面记录 ...
- ACM-ICPC(10/23)
贪心 区间相关问题 选择不相交区间: hdu 2037 给定一些区间,选择尽量多的区间,他们互相不交叉.(活动安排问题) 分析:贪心思路是解决活动安排问题的好方案. 按照区间右端点排序,从前往后遍历, ...
- 原生js 异步请求,responseXML解析
异步更新原理:用XMLHTTP发送请求得到服务器端应答数据,在不重新载入整个页面的情况下,用js操作Dom最终更新页面1.创建XMLHttp请求协议 function createXMLHttpReq ...
- MapFile
MapFile是排序后的SequenceFile, 这个排序是由开发者来保证的, 不是内存实现. 相当于对key作了一个分块索引, 只针对key. 缺点 1.文件不支持复写操作,不能向已存在的Seq ...
- nineoldandroid 详细使用并且实现drawerlayout侧滑动画
nineoldandroid.view.ViewHelpe是一个为了兼容3.0以下的一个动画开源库 相关函数解读:(第一个参数都为动画对象,第二个为动画属性值的变化表达式) ViewHelper.se ...