Ruby字符串
在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字符串的更多相关文章
- ruby 字符串学习2
在一个ruby字符串中包含表但是或者变量.想使用不同的值替换表达式或者变量 1 类似java 或者python的printf-style方式 template = 'Oceania has alway ...
- 雷林鹏分享:Ruby 字符串(String)
Ruby 字符串(String) Ruby 中的 String 对象存储并操作一个或多个字节的任意序列,通常表示那些代表人类语言的字符. 最简单的字符串是括在单引号(单引号字符)内.在引号标记内的文本 ...
- Ruby字符串(1):String基本用法
String字符串 字符串由String类提供,除了直接使用单双引号或其它字面量创建字符串,也可以使用String.new()方法来创建. a = "hello" b = Stri ...
- ruby 字符串学习笔记1
1 从一种数据结构中构件字符串 hash = { key1: "val1", key2: "val2" } string = "" hash ...
- ruby字符串相关方法
构造字符串字面量 方法一:最简单的使用单引号或者双引号括起来的字符串,比如"hello". 方法二:使用%q配合分界符,%q代表单引号str=%q!he/lo! 方法三:使用%Q配 ...
- Ruby字符串的一些方法
最近因为公司需求开始看ruby,先从ruby的基本数据类型开始看 看到ruby的字符串类型string,发现ruby中的字符串单双引号是不一样的,这点和Python有那么点不一样 主要是我们对字符串进 ...
- ruby 字符串常用方法学习
引用链接:http://www.blogjava.net/nkjava/archive/2010/01/03/308088.html 1,切片:silce, [ ]-----------------[ ...
- Ruby字符串(2):String方法详细整理
String方法整理 官方手册 类方法 new new(str="") → new_str new(str="", encoding: enc) → new_s ...
- ruby字符串学习笔记5
1获取字符串某部分 s = "My kingdom for a string!" s.slice(3,7) # kingdom s[3,7] # kingdom s[/.ing/] ...
随机推荐
- UVA1585
#include<stdio.h> #include<string.h> int main(){ int n; ]; scanf("%d",&n); ...
- 为你的网站或App提供免费Https支持
网站或App Http传输是明文传输,在传输登录或支付相关的数据时,完全是裸奔. 购买证书虽然不是很贵, 但对于个人或初创团队来说,完全可以申请免费的证书来提供Https访问. 本文介绍通过start ...
- 1009: [HNOI2008]GT考试
1009: [HNOI2008]GT考试 Time Limit: 1 Sec Memory Limit: 162 MB Description 阿申准备报名参加GT考试,准考证号为N位数\(X_1X_ ...
- redis 操作 list 的测试
lpush 从头部压入数据 127.0.0.1:6379> lpush listname value1 (integer) 1//返回list的当前长度 127.0.0.1:6379> l ...
- JS循环语句作业讲解(折纸、兔子生兔子、买东西组合)
1.一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米: varn = 0;varg = 0.0001;while(){ g= g *2; n++ (g>8848bre ...
- jsp URL中文传值
js中,讲中文转码 encodeURI(中文): Java中,转回中文 java.net.URLDecoder.decode(乱码,"utf-8"): 例子; window.loc ...
- php ob_flush 和flush
“ob_flush()和flush()的区别.前者是把数据从PHP的缓冲中释放出来,后者是把不在缓冲中的或者说是被释放出来的数据发送到浏览器.所以当缓冲存在的时候,我们必须ob_flush()和flu ...
- linux常见命令总结
日志文件说明 /var/log/message 系统启动后的信息和错误日志,是Red Hat最常用的日志之一 /var/log/secure 与系统安全相关的日志信息 /var/log/maillog ...
- vtk多线程简单测试
vtkMultithreader is a class that provides support for multithreaded execution using sproc() on an SG ...
- JavaScript 构造函数与原型链
构造函数.原型链: function Person(name, age, job) { this.name = name; this.age = age; this.job = job; // thi ...