永发信息网

如何在Ruby中使用字符串方法

答案:1  悬赏:0  手机版
解决时间 2021-03-29 09:04
如何在Ruby中使用字符串方法
最佳答案
正如你所知道的,ruby字符串被称为一流的对象,它使用了大量的查询和操作方法。一个最基本的字符串操作是把一个字符串分割成多个子字符串。如果你有一个字符串,如“foo, bar, baz”而你希望的是这样三个字符串“foo”,“bar”,“baz”。那么字符串类的split方法就可以帮助你。 “split”的基本用法 split方法的最基本用法分裂一个由单独字符或字符的静态序列组成的字符串。如果split的第一个变量是一个字符串,那么这个字符串中字符就会被当作一个字符串分隔符使用。但是在逗号分隔的数据中,逗号用来分隔数据,这里的每个字符串成分都被用来分隔数据。 #!/usr/bin/env rubystr =foo,bar,bazputsstr. split(,)$ ./1.rbfoobarbaz通过正则表达式来增加灵活性 当然,还有一些更容易的方法可以分隔字符串。正则表达式可以为split方法增加灵活性。这里再次拿“foo, bar, baz”。间隔在第一个逗号之后而不是第二个逗号。如果该字符串“,”被当成是分隔符,那么在“baz”字符串的开始处仍然会存在间隔。如果使用“,”字符串,它只与第一个逗号匹配,因为第二个逗号后面没有间隔。其作用还是有限的。 解决这个问题的办法是把正则表达式作为定界符的自变量,而不是使用字符串。正则表达式不仅可以匹配静态序列的字符,对字符的不定量和可选字符都同样起作用。 编写正则表达式 为你的分隔符编写一个正则表达式,第一步就是描述清楚什么是分隔符。在这种情况下,一个逗号后面可能存在一个或多个空格是合理的。这一正则表达式库中存在两个要素:逗号和可选的间隔。间隔会使用* (星号)量词,它表示的意思是“零或更多”。任何在它之前的要素都会匹配零次或若干次。例如,正则表达式/ a * /将匹配序列零或更多“a”字符。 #!/usr/bin/env rubystr =foo, bar,bazputsstr. split( /, */ )$ ./2.rbfoobarbaz限制splits的数量 想象一个逗号分隔了这样的字符串:“10,20,30,this is an arbitary string”。其格式是三个数字后面跟了一句评论。此评论可以包含任意的文本,包括带有逗号的文本。要防止split分离文本这个文本,我们可以设置一个最大分裂列数。请注意,只有在任意文本的评论字符串处在表格最后一列时才管用。 为了限制splits的数量,字符串中数域的数量要作为split方法的第二个变量来发送。 #!/usr/bin/env rubystr =10,20,30,ten, twenty and thirtyputsstr. split( /, */, 4 )$ ./3.rb102030en, twentyandthirty了解其局限性 分裂法有一些局限性。以字符串“10,20, ‘bob, eve and mallory’,30”为例。预期字符是两个数字,后跟一个引证串(可能包含逗号),然后是另一个数字。split不能正确分隔这个字符串的域。为了做到正确分隔,需要保持字符串扫描器处于开启状态,这样一来它就会记得它有没有在引证串内部。反之,如果扫描仪不在启动状态,就不能解决这样的问题。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
小仓鼠深个研究记录怎么写
2015年11月30日支票怎么写
肆去掉聿有几画
阿修罗安图尼控怪是带虚空好还是暗影之怒好
模式在哪儿 绝地求生活动模式怎么进
做好的窗帘怎么做阻燃处理
then当副词时.可以修饰名词吗?
魔兽争霸2v2的精髓是什么? 2v2中人族该如何操
我要你漏奶,我要你给我咪是什么英文歌
WARTILE你们游戏体验怎么样
街头篮球王泽奇和JD丑万哪个好
求双曲线的标准方程 经过点(2,√7,-3)与(-
送交公棚如何挑选幼鸽
IOS 的支付失败,请重试怎么回事,吧主勿删
霍元甲是不是被日本人毒死的
推荐资讯
面心立方晶格的致密度怎么算
一英特尔u装533主板celeronD 2.26ghz/256
广东省梅州市原908车队现在改为什么名称.主要
新车2.4的思铂睿,用什么机油好
风云:谁知道风云雄霸天下中郑伊健唱的主题曲
有在“北京百思特捷迅科技有限公司” 上班的
不越狱可不可以找到波斯王子武者之心的ios游
本人刚做国珍一个月,想了解更多人对国珍的看
佳士牌二保焊机怎么样?
房产工程中,初步设计和扩初设计包括哪些
的男孩名字欠水
新风与风道的计算
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?