Ruby String(2)

String In Ruby


1. common string

在Ruby中可以有多种方式表达String,如下,用double quotes 和single quotes.

puts "sleep tight"
puts 'sleep tight'
但是两个的在转义方面有所不同,single quotes只用来定义常量字符串,并且只会多backslash和single quote进行转义,如下:

\'
\\

但是double quotes会对内部的变量进行计算并填充其值到字符串,除此之外多多种特殊字符进行转义。如下:

puts "Enter name"
name = gets.chomp
puts "Your name is #{name}"

转义字符如下:
\" − double quote
\\ − single backslash
\a − bell/alert
\b − backspace11
\r − carriage return12
\n − newline13
\s − space14
\t − tab


其中\a需要多提一下,它是用来发出beep声音的,大家可以在irb中试试。下面的代码:

2. alternate quotes

另外还有两种方法来替代单双引号,一个是%q, %q相当于单引号,可以用其他delemiter来作为string litreal 的解释和开始标志,如下:

puts %q!c:\napolean's documents\tomorrow's bus schedule.txt!
puts %q/c:\napolean's documents\tomorrow's bus schedule.txt/
puts %qˆc:\napolean's documents\tomorrow's bus schedule.txtˆ
puts %q(c:\napolean's documents\tomorrow's bus schedule.txt)
puts %q{c:\napolean's documents\tomorrow's bus schedule.txt}
puts %q<c:\napolean's documents\tomorrow's bus schedule.txt>

另外一个是%Q,相当于双引号:如下所示:
name = 'Charlie Brown'
puts %Q!Say "Hello," #{name}.!
puts %Q/What is "4 plus 5"? Answer: #{4+5}/


3.Here Document

当想要定义多行的字符文字时,可以使用<<符号,后加一个字符开始标志来定义。如下

puts <<GROCERY_LIST
Grocery list
------------
1. Salad mix.
2. Strawberries.*
3. Cereal.
4. Milk.*
* Organic
GROCERY_LIST

上面的例子中,GROCERY_LIST为字符开始与结束标志。

有时需要加上多个document时,可以将文档写在一起并用结束标志来分割,如下所示,puts的第三个和第六个参数为document.
puts 'Produce', '-------', <<PRODUCE, 'Dairy', '-----', <<DAIRY, '*Organic'
1. Strawberries*
2. Blueberries
PRODUCE
1. Yogurt
2. Milk*
3. Cottage Cheese
DAIRY


有点需要注意的是,document会将中间的literal string进行转换,就像double quote一样,如果不需要转换,需要将identifier用单引号引起来。

如下第一个会转换,第二个不会转换。
name="Hellen"
puts <<"QUIZ"
Student: #{name}
1.\tQuestion: What is 4+5?
\tAnswer: The sum of 4 and 5 is #{4+5}
QUIZ

puts <<'QUIZ'
Student: #{name}
1.\tQuestion: What is 4+5?
\tAnswer: The sum of 4 and 5 is #{4+5}
QUIZ


Print In Ruby


puts print 都可以用来打印输出到终端,区别在于puts会在每个参数后面加上换行,而print不会,需要显示的调用\n. 如下:
puts "Hello!", "My", "Name", "is", "HaHa"
print "Hello!", "My", "Name", "is", "HaHa"

#output
Hello!
My
Name
is
HaHa
Hello!MyNameisHaHa


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值