首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
Ruby简介
Ruby 环境
Ruby 中文编码
Ruby 命令行选项
Ruby 环境变量
Ruby 语法
Ruby 数据类型
Ruby 类和对象
Ruby 类案例
Ruby 变量
Ruby 运算符
Ruby 注释
Ruby 条件判断
Ruby 循环
Ruby 方法
Ruby 块
Ruby 模块(Module)
Ruby 字符串(String)
Ruby 数组(Array)
Ruby 哈希(Hash)
Ruby 日期 & 时间(Date & Time)
Ruby 范围(Range)
Ruby 迭代器
Ruby 文件的输入与输出
Ruby 异常
当前位置:
首页>>
技术小册>>
Ruby入门教程
小册名称:Ruby入门教程
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 ``` Ruby 中还支持一种采用 %q 和 %Q 来引导的字符串变量,%q 使用的是单引号引用规则,而 %Q 是双引号引用规则,后面再接一个 (! [ { 等等的开始界定符和与 } ] ) 等等的末尾界定符。 跟在 q 或 Q 后面的字符是分界符.分界符可以是任意一个非字母数字的单字节字符.如:[,{,(,<,!等,字符串会一直读取到发现相匹配的结束符为止. 实例 ``` #!/usr/bin/ruby # -*- coding: UTF-8 -*- desc1 = %Q{Ruby 的字符串可以使用 '' 和 ""。} desc2 = %q|Ruby 的字符串可以使用 '' 和 ""。| puts desc1 puts desc2 ``` 以上实例输出运行输出结果为: ``` Ruby 的字符串可以使用 '' 和 ""。 Ruby 的字符串可以使用 '' 和 ""。 ``` ###转义字符 下标列出了可使用反斜杠符号转义的转义字符或非打印字符。 注意:在一个双引号括起的字符串内,转义字符会被解析。在一个单引号括起的字符串内,转义字符不会被解析,原样输出。 ``` 反斜杠符号 十六进制字符 描述 \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 ``` 实例 尝试下面的实例,解压各种数据。 ``` "abc \0\0abc \0\0".unpack('A6Z6') #=> ["abc", "abc "] "abc \0\0".unpack('a3a3') #=> ["abc", " \000\000"] "abc \0abc \0".unpack('Z*Z*') #=> ["abc ", "abc "] "aa".unpack('b8B8') #=> ["10000110", "01100001"] "aaa".unpack('h2H2c') #=> ["16", "61", 97] "\xfe\xff\xfe\xff".unpack('sS') #=> [-2, 65534] "now=20is".unpack('M*') #=> ["now is"] "whole".unpack('xax2aX2aX1aX2a') #=> ["h", "e", "l", "l", "o"] ```
上一篇:
Ruby 模块(Module)
下一篇:
Ruby 数组(Array)
该分类下的相关小册推荐:
暂无相关推荐.