Ruby & RailsRubyRuby on Rails

5 天外有天(3)无规无矩

2017-07-22  本文已影响8人  彩虹门票
大话西游2.jpeg
有许多种改变字符串大小写的方法: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虽是一个极好的工具,但是没有任何工具会适用于所有的工作。

剩下的两个字符串格式的方法是ljustrjust,是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)
输出

牛刀小试

                    Table of Contents                
                                                
Chapter 1:  Numbers                        page 1
Chapter 2:  Letters                       page 72
Chapter 3:  Variables                    page 118

上一篇下一篇

猜你喜欢

热点阅读