有许多种改变字符串大小写的方法:
upcase
把所有小写字母改为大写;downcase
把所有大写字母改为小写;swapcase
会转换字符串中的每个字母(原字母若为大写转换成小写,若为小写则转换成大写);capitalize
是类似downcase
,区别是它还会把第一个字符转换成大写(如果首字符是字母的话)。
letters = 'aAbBcCdDeE'
puts letters.upcase
puts letters.downcase
puts letters.swapcase
puts letters.capitalize
puts ' a'.capitalize
puts letters
输出
很标准的输出结果,
puts ' a'.capitalize
这一行,capitalize
只会将首字符大写,而不是首字母。同样的,就像之前我们看到的几个转换方法,原字符串依旧不会被改变。我并不是想反复强调这一点,只是理解这一点很重要。有部分方法会改变相关联的对象,只是我们现在还没学到,稍后你们将会看到。
我们将会学习的最后一种字符串方法是用于视觉格式的(文字输出排版格式)。第一个是center
,它会在字符串开始和结尾处都增加空格使其居中放置。但是就像你需要告诉puts
要输出你想要的内容,需要写上你想要增加的内容,你同样需要告诉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部分排整齐点,所以我在字符串前面加了其他的空格,这只是因为我觉得这样排版好看点。程序员对于程序中代码如何漂亮点通常有很强的感觉和要求,一部分人会不太赞同。你越经常编程的话,你越会在代码中体现出属于你自己的风格)提到懒惰,在编程中懒并不总是件坏事。比如上面例子中发现我如何在变量
lineWidth
中储存诗歌的行宽了吧?这是以便于我之后如果想让这首诗变宽点,我只需要改变程序中的第一行就可以了,而不需要改动每个需要居中的行。对于一个较长的诗歌来说,这将为我节省许多时间。这种懒在编程中可谓是种美德。
另外关于格式居中……你可能感觉相较于文字排版软件中的做法,上面的处理不是非常美观。如果你想要完美的居中(或更漂亮的字体),你需要去使用文字排版软件!Ruby虽是一个极好的工具,但是没有任何工具会适用于所有的工作。
剩下的两个字符串格式的方法是ljust
和rjust
,是left justify 和 right justify的缩写。它们和center
类似,它们会在左/右两侧各自用空格填补字符串。下面我们在程序中演示它们三个:
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)
输出
牛刀小试
- 写一个“坏老板”程序:它会粗鲁地问你想要什么,不论你回答什么,它总会向你喊叫同样的话,然后炒你鱿鱼。比如你回应:我想升职加薪
I want a raise.
,它会回应:
WHADDAYA MEAN "I WANT A RAISE."?!? YOU'RE FIRED!!
你还想升职加薪!? 你被炒了!! - 下面是想用center/ljust/rjust处理表格:写出一个程序能够输出像下面这样的内容:
Table of Contents
Chapter 1: Numbers page 1
Chapter 2: Letters page 72
Chapter 3: Variables page 118
-
参考:
输出
网友评论