在Ruby中的String对象持有和操纵的任意序列的一个或多个字节,通常表示人类语言的字符表示。简单的字符串文本括在单引号中,如

'This is a simple Ruby string literal'

如果需要内置一个单引号,单引号的字符串文字,需要在单引号前面加一个反斜杠,Ruby解释器才不认为遇到了终止字符串,如:

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

打印结果为:

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

反斜杠也可以转义另一个反斜杠,这样第二个反斜杠本身不被解释为转义字符

以下是字符串相关功能:

表达式替换

表达式替换是嵌入任何Ruby表达式的值转换成字符串使用的一种手段,可用#{and}替换,如

x,y,z = 12,36,72
puts "The value of x is #{x}."
puts "The sub of x and y is #{x + y}."
puts "The average was #{ (x + y + z)/3 }."

输出如下:

The value of x is 12.
The sub of x and y is 48.
The average was 40.

字符编码方式:

Ruby的默认字符集是ASCll码,字符可能会由单字节表示。如果使用UTF-8或另一种现代字符集,字符可能会以四个字节表示。可以更改字符集使用$KCODE在程序的开始行,像这样:

$KCODE = 'u'

以下是$KCODE可能的值:

code 描述
a ASCLL (default)
e EUC
n None(same ad ASCll)
u UTF-8

字符串的内置方法

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

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

这将返回一个新的字符串对象,其中包含str的一个副本。

myStr = String.new("THIS IS TEST")
foo = myStr.downcase
puts "#{foo}"

这将产生以下结果

this is test

Ruby字符串的更多相关文章

  1. ruby 字符串学习2

    在一个ruby字符串中包含表但是或者变量.想使用不同的值替换表达式或者变量 1 类似java 或者python的printf-style方式 template = 'Oceania has alway ...

  2. 雷林鹏分享:Ruby 字符串(String)

    Ruby 字符串(String) Ruby 中的 String 对象存储并操作一个或多个字节的任意序列,通常表示那些代表人类语言的字符. 最简单的字符串是括在单引号(单引号字符)内.在引号标记内的文本 ...

  3. Ruby字符串(1):String基本用法

    String字符串 字符串由String类提供,除了直接使用单双引号或其它字面量创建字符串,也可以使用String.new()方法来创建. a = "hello" b = Stri ...

  4. ruby 字符串学习笔记1

    1 从一种数据结构中构件字符串 hash = { key1: "val1", key2: "val2" } string = "" hash ...

  5. ruby字符串相关方法

    构造字符串字面量 方法一:最简单的使用单引号或者双引号括起来的字符串,比如"hello". 方法二:使用%q配合分界符,%q代表单引号str=%q!he/lo! 方法三:使用%Q配 ...

  6. Ruby字符串的一些方法

    最近因为公司需求开始看ruby,先从ruby的基本数据类型开始看 看到ruby的字符串类型string,发现ruby中的字符串单双引号是不一样的,这点和Python有那么点不一样 主要是我们对字符串进 ...

  7. ruby 字符串常用方法学习

    引用链接:http://www.blogjava.net/nkjava/archive/2010/01/03/308088.html 1,切片:silce, [ ]-----------------[ ...

  8. Ruby字符串(2):String方法详细整理

    String方法整理 官方手册 类方法 new new(str="") → new_str new(str="", encoding: enc) → new_s ...

  9. ruby字符串学习笔记5

    1获取字符串某部分 s = "My kingdom for a string!" s.slice(3,7) # kingdom s[3,7] # kingdom s[/.ing/] ...

随机推荐

  1. UVA1585

    #include<stdio.h> #include<string.h> int main(){ int n; ]; scanf("%d",&n); ...

  2. 为你的网站或App提供免费Https支持

    网站或App Http传输是明文传输,在传输登录或支付相关的数据时,完全是裸奔. 购买证书虽然不是很贵, 但对于个人或初创团队来说,完全可以申请免费的证书来提供Https访问. 本文介绍通过start ...

  3. 1009: [HNOI2008]GT考试

    1009: [HNOI2008]GT考试 Time Limit: 1 Sec Memory Limit: 162 MB Description 阿申准备报名参加GT考试,准考证号为N位数\(X_1X_ ...

  4. redis 操作 list 的测试

    lpush 从头部压入数据 127.0.0.1:6379> lpush listname value1 (integer) 1//返回list的当前长度 127.0.0.1:6379> l ...

  5. JS循环语句作业讲解(折纸、兔子生兔子、买东西组合)

    1.一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米: varn = 0;varg = 0.0001;while(){ g= g *2; n++ (g>8848bre ...

  6. jsp URL中文传值

    js中,讲中文转码 encodeURI(中文): Java中,转回中文 java.net.URLDecoder.decode(乱码,"utf-8"): 例子; window.loc ...

  7. php ob_flush 和flush

    “ob_flush()和flush()的区别.前者是把数据从PHP的缓冲中释放出来,后者是把不在缓冲中的或者说是被释放出来的数据发送到浏览器.所以当缓冲存在的时候,我们必须ob_flush()和flu ...

  8. linux常见命令总结

    日志文件说明 /var/log/message 系统启动后的信息和错误日志,是Red Hat最常用的日志之一 /var/log/secure 与系统安全相关的日志信息 /var/log/maillog ...

  9. vtk多线程简单测试

    vtkMultithreader is a class that provides support for multithreaded execution using sproc() on an SG ...

  10. JavaScript 构造函数与原型链

    构造函数.原型链: function Person(name, age, job) { this.name = name; this.age = age; this.job = job; // thi ...