偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

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

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

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

  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更靈巧,更直觀.比如說,你可以用+把幾個(gè)串連起來,用*把一個(gè)串重復(fù)好幾遍:

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

 

相比之下,在C里,因?yàn)樾枰_的內(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);  

但對(duì)于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字符串特性.下面是一個(gè)猜詞的謎題,可能"謎題"這個(gè)詞用在下面的東西上太酷了一點(diǎn);-)

  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é)了.下面是謎題程序運(yùn)行的一個(gè)對(duì)話。

  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字符串

2009-11-30 14:08:42

PHP字符串原理

2010-03-03 09:12:25

.NET字符串拘留池

2010-02-02 11:27:16

C++字符串

2009-08-05 18:09:17

C#異常處理機(jī)制

2011-07-21 15:36:40

JAVA

2010-08-04 11:23:15

Flex字符串

2010-07-14 16:35:52

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

2009-12-15 11:01:31

Ruby數(shù)組

2009-12-14 09:33:04

Ruby安裝

2010-10-09 11:54:46

MySQL字符串

2010-07-19 15:07:46

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

2025-06-30 02:11:00

2009-11-26 13:52:07

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

2009-12-15 15:28:22

Ruby重載

2017-12-07 16:08:47

數(shù)據(jù)優(yōu)化HTML字符串
點(diǎn)贊
收藏

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