2 字符篇

前面我們已經(jīng)了解了Ruby中數(shù)字的使用讨盒,那么字母呢?以及單詞和文本怎么使用飒焦?

Letters

在程序中我們把由字母連在一起的這個串成為“字符串”(你可以聯(lián)想到打印出來的幾個字母用一個橫幅串起來)為了方便區(qū)別在代碼中哪部分是字符串八孝,我把字符串部分標(biāo)綠。下面是一些例子:

'Hello.'
'Ruby rock.'
'5 is my favorite number... what is yours?'
'Snoopy says #%^?&*@! when he stubs his toe.'
'            '

你可以看出找蜜,字符串是可以包含標(biāo)點、數(shù)位稳析、符號及空格……而不僅僅是字母洗做。最后一個字符串里面沒有含任何內(nèi)容,我們把這樣的叫做空字符串迈着。

我們之前用puts來輸出過數(shù)字了竭望,現(xiàn)在我們用字符串試試:

puts 'Hello,world!'
puts ' '
puts 'Good-bye.'
Hello邪码,world!

Good-bye.

看來程序運行得還不錯裕菠,現(xiàn)在可以試試你自己想的例子。

字符串的運算

既然數(shù)字之間可以運算闭专,你也可以進(jìn)行字符串運算奴潘!好吧,只是部分……當(dāng)然你可以進(jìn)行字符串的加法影钉。讓我們試著做兩個字符串的加法運算來看看之后會有什么結(jié)果:

puts 'I like' + 'apple pie.'

哎呦画髓!我忘了在 “I like” 和 “apple pie.”之間放空格了∑轿空格通常是沒啥影響的奈虾,但是在字符串中就會很重要。(可見有句話說的很對:電腦不會按我們的想法去做事,只有我們教它們才可以)
下面讓我們再試試:

puts 'I like ' + 'apple pie.'
puts 'I like' + ' apple pie.'
I like apple pie.
I like apple pie.

(正如你所見肉微,我把空格加在兩者中哪個字符串中是沒啥影響的)
既然你可以進(jìn)行字符串加法匾鸥,你也能做字符串乘法!(不過需要用到數(shù)字)看看下面這個例子:^_-)≡

puts 'blink ' * 4

這怎么可能 ミ?Д?彡 碉纳!眨四次眼睛就不理人了勿负?好吧,開個玩笑……實際輸出是:


如果你稍微思考一下劳曹,上面的輸出實際上是有道理的奴愉。別忘了,7*3 實際的計算過程是 7+7+7铁孵,所以 'moo ' *3 是表示‘moo ’ + ‘moo ’ + ‘moo ’.

(牛叫3聲 哞 哞 哞        -----譯者注)

12 與 ' 12 '

在我們進(jìn)行下一步前锭硼,我們需要確定我們理解數(shù)字和數(shù)位的區(qū)別。12 是數(shù)字蜕劝,而 ‘12’是2個數(shù)位的字符串账忘。
我們先試試下面這個例子:

puts  12 +  12
puts '12' + '12'
puts '12  + 12'

輸出為:

24
1212
12  +  12

又比如:

puts  2  *  5
puts '2' *  5
puts '2  *  5'

輸出為:

10
22222
2  *  5

上面的例子區(qū)別是很明顯的,但如果你將字符串和數(shù)字組合的時候不太注意的話熙宇,你可能會出問題的……

遇到的問題

學(xué)習(xí)到現(xiàn)在你可能已經(jīng)碰到一些沒法運行的問題鳖擒。如果你沒碰到過,下面有幾個例子:

puts '12' + 12
puts '2' * '5'

輸出為:

#<TypeError: no implicit conversion of Fixnum into String>

嗯……一條出錯消息烫止。這里的問題是你不能把一個數(shù)字加到一個字符串上蒋荚,或乘以一個字符串到另一個字符串上。比如像下面這個例子所示的馆蠕,這樣做沒任何意義:

puts 'Betty' + 12
puts 'Fred' * 'John'

其他值得一提的是:你可以在程序中寫 ‘pig’ *5,這是表示5組 ‘pig’ 字符串加到一起期升,但是你不可以寫成5* ‘pig’ ,而這是表示 ‘pig’ 組數(shù)字 5,這樣是沒意義的互躬。

另外播赁,假如我想輸出 You're swell!,該如何寫呢?試試如下:

puts 'You're swell!'

好吧吼渡,程序不會成功運行的容为,我甚至都沒必要去運行它。電腦會認(rèn)為我們想輸出字符串(這就是為什么我推薦使用自帶語法高亮的代碼編輯器)寺酪。那么我們怎么樣讓電腦理解我們想讓字符串保持整體輸出呢坎背?我們不得不跳過撇號,像下面這樣:

puts 'You\'re swell!'


這里反斜線是換碼符號寄雀,也就是說當(dāng)你用到一個反斜線和另一個字符得滤,它通常會將其轉(zhuǎn)換成一個新的符號,但是唯獨當(dāng)使用反斜線和撇號在一起時會變成忽略符號(如果你思考一下盒犹,換碼符號必須忽略他們自己)懂更。下面舉幾個例子:

puts 'You\'re swell!'
puts 'backslash at the end of a string:  \\'
puts 'up\\down'
puts 'up\down'

從上面的輸出可以看出:反斜線碰到 ‘d’的時候不會忽略自己,但是碰到另一個反斜線時會忽略它本身眨业。最后兩個字符串是相同的,雖然在代碼上是不同沮协,但是輸出到屏幕上是一樣的坛猪。

通過以上內(nèi)容,如果你還有些疑惑的話皂股,盡管繼續(xù)進(jìn)行下一節(jié)學(xué)習(xí)墅茉!畢竟我沒法在這里解答你所有的問題。(〃''〃)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末呜呐,一起剝皮案震驚了整個濱河市就斤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蘑辑,老刑警劉巖洋机,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異洋魂,居然都是意外死亡绷旗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門副砍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來衔肢,“玉大人,你說我怎么就攤上這事豁翎〗侵瑁” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵心剥,是天一觀的道長邦尊。 經(jīng)常有香客問我,道長优烧,這世上最難降的妖魔是什么蝉揍? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮畦娄,結(jié)果婚禮上又沾,老公的妹妹穿的比我還像新娘。我一直安慰自己纷责,他們只是感情好捍掺,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布撼短。 她就那樣靜靜地躺著再膳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪曲横。 梳的紋絲不亂的頭發(fā)上喂柒,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天不瓶,我揣著相機(jī)與錄音,去河邊找鬼灾杰。 笑死蚊丐,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的艳吠。 我是一名探鬼主播麦备,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼昭娩!你這毒婦竟也來了凛篙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤栏渺,失蹤者是張志新(化名)和其女友劉穎呛梆,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體磕诊,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡填物,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了霎终。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滞磺。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖莱褒,靈堂內(nèi)的尸體忽然破棺而出雁刷,到底是詐尸還是另有隱情,我是刑警寧澤保礼,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布沛励,位于F島的核電站,受9級特大地震影響炮障,放射性物質(zhì)發(fā)生泄漏目派。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一胁赢、第九天 我趴在偏房一處隱蔽的房頂上張望企蹭。 院中可真熱鬧,春花似錦智末、人聲如沸谅摄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽送漠。三九已至,卻和暖如春由蘑,著一層夾襖步出監(jiān)牢的瞬間闽寡,已是汗流浹背代兵。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留爷狈,地道東北人植影。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像涎永,于是被迫代替她去往敵國和親思币。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容