• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >ruby > Ruby 字符串处理

Ruby 字符串处理

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了ruby字符串,ruby 字符串转数组,ruby 字符串截取,ruby 字符串拼接,ruby 字符串替换等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
Ruby将字符串像数字一样处理.我们用单引号('...')或双引号("...")将它们括起来.

ruby> "abc"
   "abc"
ruby> 'abc'
   "abc"


单引号和双引号在某些情况下有不同的作用.一个由双引号括起来的字符串允许字符由一个前置的斜杠引出,而且可以用#{}内嵌表达式.而

单引号括起来的字符串并不会对字符串作任何解释;你看到的是什么便是什么.几个例子:

ruby> print "a\nb\nc","\n"
a

c
   nil
ruby> print 'a\nb\n',"\n"
a\nb\nc
   nil
ruby> "\n"
   "\n"
ruby> '\n'
   "\\n"
ruby> "\001"
   "\001"
ruby> '\001'
   "\\001"
ruby> "abcd #{5*3} efg"
   "abcd 15 efg"
ruby> var = " abc "
   " abc "
ruby> "1234#{var}5678"
   "1234 abc 5678"


Ruby的字符串操作比C更灵巧,更直观.比如说,你可以用+把几个串连起来,用*把一个串重复好几遍:

ruby> "foo" + "bar"
   "foobar"
ruby> "foo" * 2
   "foofoo"


相比之下,在C里,因为需要精确的内存管理,串联字符串要笨拙的多:

char *s = malloc(strlen(s1)+strlen(s2)+1);
strcpy(s, s1);
strcat(s, s2);
/* ... */
free(s);


但对于Ruby,我们不需要考虑字符串的空间占用问题,这令到我们可以从烦琐的内存管理中解脱出来.

下面是一些字符串的处理,

串联:

ruby> word = "fo" + "o"
   "foo"


重复:

ruby> word = word * 2
   "foofoo" 


抽取字符(注意:在Ruby里,字符被视为整数):

ruby> word[0]
   102            # 102 is ASCII code of `f' 
ruby> word[-1]
   111            # 111 is ASCII code of `o' 


(负的索引指从字符串尾算起的偏移量,而不是从串头.)

提取子串:

ruby> herb = "parsley"
   "parsley"
ruby> herb[0,1]
   "p"
ruby> herb[-2,2]
   "ey"
ruby> herb[0..3]
   "pars"
ruby> herb[-5..-2]
   "rsle" 


检查相等:

ruby> "foo" == "foo"
   true
ruby> "foo" == "bar"
   false 


注意:在Ruby 1.0里,以上结果以大写字母出现.

好,让我们来试试这些特性.下面是一个猜词的谜题,可能"谜题"这个词用在下面的东西上太酷了一点;-)

# save this as guess.rb
words = ['foobar', 'baz', 'quux']
secret = words[rand(3)]
print "guess? "
while guess = STDIN.gets  
    guess.chop!  
    if guess == secret
       print "You win!\n"    
       break  
    else    
       print "Sorry, you lose.\n"  
    end  
    print "guess? "
end
print "The word was ", secret, ".\n"


现在,别太担心代码细节了.下面是谜题程序运行的一个对话.

% ruby guess.rb
guess? foobar
Sorry, you lose.
guess? quux
Sorry, you lose.
guess? ^D
The word was baz. 


(考虑到1/3的成功率,也许我本该做得好一点.) </div>

您可能想查找下面的文章:

  • Ruby中实现把字符串转换为类的2种方法
  • Ruby中字符串左侧补零方法实例
  • Ruby字符串、条件、循环、数组、Hash、类基本操作笔记
  • Ruby 字符串处理
  • Ruby中的字符串编写示例
  • Ruby中操作字符串的一些基本方法
  • Ruby中常用的字符串处理函数使用实例
  • Ruby中创建字符串的一些技巧小结

相关文章

  • 在Ruby中处理日期和时间的教程
  • 深入剖析Ruby设计模式编程中对命令模式的相关使用
  • 详解Ruby语言中的注释用法与中文编码问题
  • 浅谈Rails 4 中Strong Parameters机制
  • Ruby中嵌套对象转换成json的方法
  • Ubuntu上配置Ruby on Rails框架及RubyMine IDE开发环境
  • Ruby的语法和语言特性总结
  • Ruby基础知识之数据类型
  • Ruby常量查找路径问题深入研究
  • 实例解析Ruby设计模式编程中Strategy策略模式的使用

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 进一步深入Ruby中的类与对象概念
    • ruby 面向对象思维 概念
    • 用Ruby实现一个单元测试框架的教程
    • Ruby编程中关于中断和返回的用法教程
    • Ruby基础知识之方法、代码段
    • 实例讲解Ruby使用设计模式中的装饰器模式的方法
    • Ruby中的数组和散列表的使用详解
    • Ruby实现发送邮件的两个方法
    • 一个简单的Ruby可逆加密解密类
    • Ruby self在不同环境的含义

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有