- 论坛徽章:
- 0
|
Ruby学习笔记-String
1.创建字符串
在Ruby中可以使用单引号和双引号两种方法来创建一个字符串。但是使用这两种方式创建特殊字符串时,效果有很大区别。
双引号创建字符串:Ruby会对字符串中的转义字符和特殊字符进行替换;
单引号创建字符串:不进行替换
示例:- puts 'This stirng \n delimited by single quotes' #\n:换行符
- puts "This stirng \n delimited by double quotes"
- s=”Ruby”
- puts 'Start to learn #{s}'
- puts " Start to learn #{s}"
- ------------------------------ Result -------------------------------
- This stirng \n delimited by single quotes
- This stirng
- delimited by double quotes
- Start to learn #{s}
- Start to learn Ruby
复制代码 2.用%创建多行字符串
如果希望一个字符串由多行文本字符组成的,可以使用%表示法来创建, 共有三种形式:
%/ string / :其中”/”是分隔符,可以是斜线,括号等其它字符。”string”表示是一个多行文本字符串,此形式的功能类似于双引号创建的字符串。
%Q/ string / :与%/ string / 用法相同。
%q/ string / :此形式的功能类似于单引号创建的字符串。
示例:- name="Kobe"
- age = "23"
- gender = "male"
- a=%q/
- name :#{name}
- age:#{age}
- gender:#{gender}
- /
- b=%Q {
- name :#{name}
- age :#{age}
- gender :#{gender}
- }
-
- puts a,b
- -----------------result--------------------
- name:#{name}
- age:#{age}
- gender:#{gender}
-
- name:Kobe
- age:23
- gender:male
复制代码 3. Here Document
这是Ruby提供的别外一种多行字符串的表示形式,其格式如下:
<<标识符
#string
标识符
Note: 必须以两个”<”开头,标识符可以是任意字符,起始与结束的标识符要一致; 另外,在Here Document的语法中,还可以把”<<”后面的标识符用单引号或双引号括起来,用于确定不同的替换程度;
示例:- name="Kobe"
- age = "23"
- gender = "male"
-
- a=<<info
- name:#{name}
- age:#{age}
- gender:#{gender}
- info
- puts a
- --------------------result-----------------------
- name:Kobe
- age:23
- gender:male
复制代码 4. 字符串的常用操作
1.合并字符串:
+ :原有字符串的值不变
<< :是在原有字符串的基础上添加另一个字符串,会修改原有字符串的值。
示例:- a = "this is the first string!"
- b = "---second"
- c = a + b
- puts c,a
- d = a << b
- puts d,a
- -------------------result--------------------------
- this is the first string!---second
- this is the first string!
- this is the first string!---second
- this is the first string!---second
复制代码 2.替换字符串:
可以使用Ruby内置类中的replace方法进行字符串替换;当有一个字符串对象的内容被替换时,指定这个字符串的变量都会变化;
示例:- a = "this is the first string!"
- b = a
- puts a,b
- b.replace("hellow world")
- puts a,b
- -----------------result------------------------
- this is the first string!
- this is the first string!
- hellow world
- hellow world
复制代码 3.改变字符串:
常用方法如下:
方法
说明
capitalize
将字符串首字母转换成大写
upcase
将字符串中所有字母转换成大写
downcase
将字符串中所有字母转换成小写
swapcase
将字符串大写字母转换成小写,小写字母转换成大写
strip
去掉字符串中的首尾空格
lstrip
去掉字符串中左边的空格
rstrip
去掉字符串中右边的空格
chop
删除字符串中的最后一个字符
chomp
删除字符串中的最后换行符
reverse
将字符串所有的单词倒过来,并将单词中的字符也倒过来
示例:- a = "this is the first string!"
- puts a.reverse
- puts a
- puts a.upcase
- puts a
- --------------result------------------
- !gnirts tsrif eht si siht
- this is the first string! #原有字符串的值没有改变
- THIS IS THE FIRST STRING!
- this is the first string!
复制代码 4.获取或替换字符和子字符串:
Ruby可以使用 [] 读取字符串中的字符或子字符串,使用 []= 方法可以替换字符串中的字符和子字符串; [] 方法的参数是字符的索引,返回一个ASCII码值,可以使用chr方法把它转换为字符;
示例:- a = "abcdefghijklmnopqrstuvwxyz"
- puts a[0]
- puts a[0].chr
- puts a[-1] #索引可为正数(从左开始,从0开始)或负数(从右开始,从-1开始)
- puts a[-1].chr
- puts a[2,5] #从索引为2的字符开始取5个字符
- puts a[0] = "z"
- puts a
- a[10,5] = "AAAAA"
- puts a
- ------------result---------------------------
- 97
- a
- 122
- z
- cdefg
- Q
- Qbcdefghijklmnopqrstuvwxyz
- QbcdefghijAAAAApqrstuvwxyz
复制代码 5.比较两个字符串是否相等:
1. 使用”==”或内置访方法 eql? 来比较两个字符串内容是否相等;
2. 使用 equal? 方法比较两个对象是否相同;
示例:- if"one" == "one"
- puts "equal"
- else
- puts "unequal"
- end
- if "one".eql?("one")
- puts "equal"
- else
- puts "unequal"
- end
- if "one".equal?("one")
- puts "equal"
- else
- puts "unequal"
- end
- --------------------result---------------------
- equal
- equ al
- unequal
复制代码 6. <=>:比较两个字符串大小:
字符串比较大小时实际比较的是字母的ASCII码;
示例- puts "one" <=> "one"
- puts "one" <=> "two"
- puts "one" <=> "apple"
- if "a" > "b"
- puts "a>b, true"
- else
- puts "a>b, false"
- end
- ---------------result------------------
- 0
- -1
- 1
- a>b, false
复制代码 |
|