大話西游2.jpeg
有許多種改變字符串大小寫的方法:
upcase
把所有小寫字母改為大寫衬吆;downcase
把所有大寫字母改為小寫盟榴;swapcase
會轉(zhuǎn)換字符串中的每個(gè)字母(原字母若為大寫轉(zhuǎn)換成小寫,若為小寫則轉(zhuǎn)換成大寫);capitalize
是類似downcase
肘迎,區(qū)別是它還會把第一個(gè)字符轉(zhuǎn)換成大寫(如果首字符是字母的話)廓推。
letters = 'aAbBcCdDeE'
puts letters.upcase
puts letters.downcase
puts letters.swapcase
puts letters.capitalize
puts ' a'.capitalize
puts letters
輸出
很標(biāo)準(zhǔn)的輸出結(jié)果刷袍,
puts ' a'.capitalize
這一行,capitalize
只會將首字符大寫樊展,而不是首字母做个。同樣的,就像之前我們看到的幾個(gè)轉(zhuǎn)換方法滚局,原字符串依舊不會被改變居暖。我并不是想反復(fù)強(qiáng)調(diào)這一點(diǎn),只是理解這一點(diǎn)很重要藤肢。有部分方法會改變相關(guān)聯(lián)的對象太闺,只是我們現(xiàn)在還沒學(xué)到,稍后你們將會看到嘁圈。
我們將會學(xué)習(xí)的最后一種字符串方法是用于視覺格式的(文字輸出排版格式)省骂。第一個(gè)是center
蟀淮,它會在字符串開始和結(jié)尾處都增加空格使其居中放置。但是就像你需要告訴puts
要輸出你想要的內(nèi)容钞澳,需要寫上你想要增加的內(nèi)容怠惶,你同樣需要告訴center
你想要居中的字符串需要有多寬。因此如果我想要把一首詩中的句子居中轧粟,我將會這樣做:
lineWidth = 50
puts( 'Old Mother Hubbard'.center(lineWidth))
puts( 'Sat in her cupboard'.center(lineWidth))
puts( 'Eating her curds an whey,'.center(lineWidth))
puts( 'When along came a spider'.center(lineWidth))
puts( 'Which sat down beside her'.center(lineWidth))
puts('And scared her poor shoe dog away.'.center(lineWidth))
輸出
嗯……我想不起來這首童謠是不是這樣寫的策治,不過我懶得去查閱了。我想把.center lineWidth部分排整齊點(diǎn)兰吟,所以我在字符串前面加了其他的空格通惫,這只是因?yàn)槲矣X得這樣排版好看點(diǎn)。程序員對于程序中代碼如何漂亮點(diǎn)通常有很強(qiáng)的感覺和要求混蔼,一部分人會不太贊同履腋。你越經(jīng)常編程的話,你越會在代碼中體現(xiàn)出屬于你自己的風(fēng)格)提到懶惰惭嚣,在編程中懶并不總是件壞事遵湖。比如上面例子中發(fā)現(xiàn)我如何在變量
lineWidth
中儲存詩歌的行寬了吧?這是以便于我之后如果想讓這首詩變寬點(diǎn)晚吞,我只需要改變程序中的第一行就可以了延旧,而不需要改動每個(gè)需要居中的行。對于一個(gè)較長的詩歌來說载矿,這將為我節(jié)省許多時(shí)間垄潮。這種懶在編程中可謂是種美德。
另外關(guān)于格式居中……你可能感覺相較于文字排版軟件中的做法闷盔,上面的處理不是非常美觀弯洗。如果你想要完美的居中(或更漂亮的字體),你需要去使用文字排版軟件逢勾!Ruby雖是一個(gè)極好的工具牡整,但是沒有任何工具會適用于所有的工作。
剩下的兩個(gè)字符串格式的方法是ljust
和rjust
溺拱,是left justify 和 right justify的縮寫逃贝。它們和center
類似,它們會在左/右兩側(cè)各自用空格填補(bǔ)字符串迫摔。下面我們在程序中演示它們?nèi)齻€(gè):
lineWidth = 40
str = '--> text <--'
puts str.ljust lineWidth
puts str.center lineWidth
puts str.rjust lineWidth
puts str.ljust(lineWidth/2) + str.rjust(lineWidth/2)
輸出
牛刀小試
- 寫一個(gè)“壞老板”程序:它會粗魯?shù)貑柲阆胍裁淬灏猓徽撃慊卮鹗裁矗倳蚰愫敖型瑯拥脑捑湔迹缓蟪茨泗滛~沪摄。比如你回應(yīng):我想升職加薪
I want a raise.
,它會回應(yīng):
WHADDAYA MEAN "I WANT A RAISE."?!? YOU'RE FIRED!!
你還想升職加薪!杨拐? 你被炒了F聿汀! - 下面是想用center/ljust/rjust處理表格:寫出一個(gè)程序能夠輸出像下面這樣的內(nèi)容:
Table of Contents
Chapter 1: Numbers page 1
Chapter 2: Letters page 72
Chapter 3: Variables page 118
-
參考:
輸出