天道酬勤系列之Ruby 字符串(String)介绍

本文详细介绍了Ruby中的字符串(String)概念,包括单引号和双引号字符串的区别,转义字符的使用,字符编码的讨论,以及字符串的内置方法和unpack指令的应用,帮助读者全面掌握Ruby字符串操作。
摘要由CSDN通过智能技术生成

Ruby 字符串(String)

Ruby 中的 String 对象用于存储或操作一个或多个字节的序列。

Ruby 字符串分为单引号字符串(')和双引号字符串("),区别在于双引号字符串能够支持更多的转义字符。

单引号字符串

最简单的字符串是单引号字符串,即在单引号内存放字符串:


'这是一个 Ruby 程序的字符串'

如果您需要在单引号字符串内使用单引号字符,那么需要在单引号字符串使用反斜杠(\),这样 Ruby 解释器就不会认为这个单引号字符是字符串的终止符号:


'Won\'t you read O\'Reilly\'s book?'

反斜杠也能转义另一个反斜杠,这样第二个反斜杠本身不会解释为转义字符。

以下是 Ruby 中字符串相关的特性。

双引号字符串

在双引号字符串中我们可以使用 #{} 井号和大括号来计算表达式的值:

字符串中嵌入变量:


#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
name1 = "Joe"
name2 = "Mary"
puts "你好 #{name1},  #{name2} 在哪?"

以上实例输出运行输出结果为:

你好 Joe,  Mary 在哪?

字符串中进行数学运算:

实例如下:


#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
x, y, z = 12, 36, 72
puts "x 的值为 #{ x }"
puts "x + y 的值为 #{ x + y }"
puts "x + y + z 的平均值为 #{ (x + y + z)/3 }"

以上实例输出运行输出结果为:

x 的值为 12
x + y 的值为 48
x + y + z 的平均值为 40

转义字符

下标列出了可使用反斜杠符号转义的转义字符或非打印字符。

注意:在一个双引号括起的字符串内,转义字符会被解析。在一个单引号括起的字符串内,转义字符不会被解析,原样输出。

反斜杠符号 十六进制字符 描述
\a 0x07 报警符
\b 0x08 退格键
\cx   Control-x
\C-x   Control-x
\e 0x1b 转义符
\f 0x0c 换页符
\M-\C-x   Meta-Control-x
\n 0x0a 换行符
\nnn   八进制表示法,其中 n 的范围为 0.7
\r 0x0d 回车符
\s 0x20 空格符
\t 0x09 制表符
\v 0x0b 垂直制表符
\x   字符 x
\xnn   十六进制表示法,其中 n 的范围为 0.9、 a.f 或 A.F

 

字符编码

Ruby 的默认字符集是 ASCII,字符可用单个字节表示。如果您使用 UTF-8 或其他现代的字符集,字符可能是用一个到四个字节表示。

您可以在程序开头使用 $KCODE 改变字符集,如下所示:

$KCODE = 'u'

下面是 $KCODE 可能的值。

编码 描述
a ASCII (与 none 相同)。这是默认的。
e EUC。
n None (与 ASCII 相同)。
u UTF-8。

 

字符串内建方法

我们需要有一个 String 对象的实例来调用 String 方法。下面是创建 String 对象实例的方式:


new [String.new(str="")]

这将返回一个包含 str 副本的新的字符串对象。现在,使用 str 对象,我们可以调用任意可用的实例方法。例如:


#!/usr/bin/ruby
 
myStr = String.new("THIS IS TEST")
foo = myStr.downcase
 
puts "#{foo}"

这将产生以下结果:

this is test

下面是公共的字符串方法(假设 str 是一个 String 对象):

序号 方法 & 描述
1 str % arg
使用格式规范格式化字符串。如果 arg 包含一个以上的替代,那么 arg 必须是一个数组。如需了解更多格式规范的信息,请查看"内核模块"下的 sprintf。
2 str * integer
返回一个包含 integer 个 str 的新的字符串。换句话说,str 被重复了 integer 次。
3 str + other_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术小咖龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值