自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

初步講解如何處理Ruby字符串

開發(fā) 開發(fā)工具
一般情況下,編程人員向數(shù)字一樣用單引號或雙引號來進(jìn)行Ruby字符串的處理。在這篇文章中我們將會對此做一個詳細(xì)的介紹。

Ruby語言作為一種完全面向?qū)ο蟮慕忉屝湍_本語言,可以幫助我們簡單實現(xiàn)許多功能需求。其靈活性逐步的被廣大編程人員所接受。#t#

Ruby字符串可以像數(shù)字一樣處理.我們用單引號('...')或雙引號("...")將它們括起來.

  1. ruby> "abc"   
  2. "abc"   
  3. ruby> 'abc'   
  4. "abc"  

單引號和雙引號在某些情況下有不同的作用.一個由雙引號括起來的字符串允許字符由一個前置的斜杠引出,而且可以用#{}內(nèi)嵌表達(dá)式.而單引號括起來的字符串并不會對Ruby字符串作任何解釋;你看到的是什么便是什么.幾個例子:

  1. ruby> print "a\nb\nc","\n"   
  2. a   
  3. c   
  4. nil   
  5. ruby> print 'a\nb\n',"\n"   
  6. a\nb\nc   
  7. nil   
  8. ruby> "\n"   
  9. "\n"   
  10. ruby> '\n'   
  11. "\\n"   
  12. ruby> "\001"   
  13. "\001"   
  14. ruby> '\001'   
  15. "\\001"   
  16. ruby> "abcd #{5*3} efg"   
  17. "abcd 15 efg"   
  18. ruby> var = " abc "   
  19. " abc "   
  20. ruby> "1234#{var}5678"   
  21. "1234 abc 5678"  

 

Ruby字符串操作比C更靈巧,更直觀.比如說,你可以用+把幾個串連起來,用*把一個串重復(fù)好幾遍:

  1. ruby> "foo" + "bar"   
  2. "foobar"   
  3. ruby> "foo" * 2   
  4. "foofoo"  

 

相比之下,在C里,因為需要精確的內(nèi)存管理,串聯(lián)Ruby字符串要笨拙的多:

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

但對于Ruby字符串,我們不需要考慮字符串的空間占用問題,這令到我們可以從煩瑣的內(nèi)存管理中解脫出來.
下面是一些字符串的處理,
串聯(lián):

  1. ruby> word = 
    "fo" + "o"   
  2. "foo"  

重復(fù):

  1. ruby> wordword = word * 2   
  2. "foofoo"  

抽取字符(注意:在Ruby字符串里,字符被視為整數(shù)):

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

(負(fù)的索引指從字符串尾算起的偏移量,而不是從串頭.)
提取子串:

  1. ruby> herb = "parsley"   
  2. "parsley"   
  3. ruby> herb[0,1]   
  4. "p"   
  5. ruby> herb[-2,2]   
  6. "ey"   
  7. ruby> herb[0..3]   
  8. "pars"   
  9. ruby> herb[-5..-2]   
  10. "rsle"   

 

檢查相等:

  1. ruby> "foo" == "foo"   
  2. true   
  3. ruby> "foo" == "bar"   
  4. false  

注意:在Ruby 1.0里,以上結(jié)果以大寫字母出現(xiàn).
好,讓我們來試試這些Ruby字符串特性.下面是一個猜詞的謎題,可能"謎題"這個詞用在下面的東西上太酷了一點;-)

  1. # save this as guess.rb   
  2. words = ['foobar', 'baz', 'quux']   
  3. secret = words[rand(3)]   
  4. print "guess? "   
  5. while guess = STDIN.gets   
  6. guess.chop!   
  7. if guess == secret   
  8. print "You win!\n"   
  9. break   
  10. else   
  11. print "Sorry, you lose.\n"   
  12. end   
  13. print "guess? "   
  14. end   
  15. print "The word was ", 
    secret, ".\n"  

 

現(xiàn)在,別太擔(dān)心Ruby字符串代碼細(xì)節(jié)了.下面是謎題程序運行的一個對話。

  1. % ruby guess.rb   
  2. guess? foobar   
  3. Sorry, you lose.   
  4. guess? quux   
  5. Sorry, you lose.   
  6. guess? ^D   
  7. The word was baz.   
責(zé)任編輯:曹凱 來源: jb51.net
相關(guān)推薦

2010-02-23 17:12:01

WCF字符串

2009-12-18 09:52:40

Ruby字符串處理函數(shù)

2009-12-14 13:19:07

Ruby字符串

2009-12-17 13:23:25

Ruby eval方法

2010-11-26 09:51:54

MySQL字符串

2010-03-03 09:12:25

.NET字符串拘留池

2009-11-30 14:08:42

PHP字符串原理

2010-02-02 11:27:16

C++字符串

2009-08-05 18:09:17

C#異常處理機制

2011-07-21 15:36:40

JAVA

2010-07-14 16:35:52

Perl字符串處理函數(shù)

2010-08-04 11:23:15

Flex字符串

2010-07-19 15:07:46

Perl字符串處理函數(shù)

2010-10-09 11:54:46

MySQL字符串

2009-11-26 13:52:07

PHP字符串替換函數(shù)s

2009-11-26 16:26:32

PHP字符串mbstr

2016-12-30 13:32:24

字符串算法代碼

2009-12-14 09:33:04

Ruby安裝

2009-12-15 11:01:31

Ruby數(shù)組

2009-11-17 10:55:02

PHP字符串處理函數(shù)
點贊
收藏

51CTO技術(shù)棧公眾號