回答
您可以使用Ruby的公开课,使你的代码更易读。例如:
class String
def initial
self[0,1]
end
end
将允许您在任何字符串上使用initial
方法。所以,如果你有以下变量:
last_name = "Smith"
first_name = "John"
然后你就可以得到非常缩写干净和可读性很强:
puts first_name.initial # prints J
puts last_name.initial # prints S
这里提到的关于Ruby 1.8不起作用另一种方法(不是说你应该使用了1.8无论如何 - 但是当这个答案被张贴它仍然是相当普遍):
puts 'Smith'[0] # prints 83
当然,如果你不这样做定期,然后定义的方法可能是矫枉过正,你可以只是做它直接:
puts last_name[0,1]
>> s = 'Smith'
=> "Smith"
>> s[0]
=> "S"
请注意,这只适用于ruby19。在ruby18中''“Smith”[0]'会返回字符'S'的整数值。两个版本都遵守'“Smith”[0,1] ==“S”'。 – rampion 2010-04-28 15:32:52
@rampion:的确如此。我会补充说''史密斯'[0] ==?S'在Ruby 1.8和1.9 – 2010-04-28 15:35:40
如果您使用最新的Ruby版本(1.9.0或更高版本),下面应该工作:
'Smith'[0] # => 'S'
如果您使用1.9.0+或1.8.7,以下应工作:
'Smith'.chars.first # => 'S'
如果使用的是1.8.7旧的版本,这应该工作:
'Smith'.split(//).first # => 'S'
注意'Smith'[0,1]
不不是1.8工作,它将不给你的第一个字符,它只会给你的第一字节。
上都是真实的,注意这只适用于ruby19。在ruby18中''“Smith”[0]'会返回字符'S'的整数值。两个版本都遵守'“Smith”[0,1] ==“S”'。 – rampion 2010-04-28 15:33:16
@rampion:当然,但在问题中没有迹象表明OP没有使用最新版本,那么为什么要麻烦复杂呢? – 2010-04-28 15:51:43
我同意Jörg。除非另有说明,否则无需回答遗留软件的问题。 – 2010-04-28 16:02:20
因为恼人的设计选择在Ruby中的前1.9 - some_string[0]
返回的第一个字符的字符代码 - 写这个最便携的方式是some_string[0,1]
,这告诉它获取索引为0的子字符串,其长度为1个字符。
str [0,1]在1.8和1.9中的工作方式不同,因为前者返回第一个*字节*,而后者则返回第一个*字符*。 – 2010-04-29 09:12:01
这在索引工作方式上的作用与1.9多支持多字节语言的差异并不大。它们都是为了返回第一个字符,但是1.8对于“字符”是什么样的一个更天真的观点。 – Chuck 2010-04-29 16:50:05
为了完整起见,由于红宝石1.9字符串#字符返回字符串的第一个字符。它仍然可用2.0和2.1。
"Smith".chr #=> "S"
试试这个:
>> a = "Smith"
>> a[0]
=> "S"
OR
>> "Smith".chr
#=> "S"
在Rails
name = 'Smith'
name.first
简单的使用方法。谢谢你的回答。 – 2017-02-13 22:01:49
所有这些方法都可以工作:
name = 'Smith'
puts name.[0..0] # => S
puts name.[0] # => S
puts name.[0,1] # => S
puts name.[0].chr # => S
_这些方法都不会在'name'之后使用'.'。而最后一个是不合理的,即使你删除'.',因为它使用了两种不同的方法来做同样的事情 - '[0]'_and_'chr()'。 – jeffdill2 2018-01-08 17:07:08
是尚未提及的另一种选择:
> "Smith".slice(0)
#=> "S"
- 1. 如何获取SQL中的字符串的第一个字符?
- 2. Android如何获取字符串的第一个字符?
- 3. C#:如何获得一个字符串的第一个字符?
- 4. 如何从Ruby 1.8.7中的utf-8字符串获取第i个字符?
- 5. 获取每个单词的第一个字符的字符串
- 6. 从字符串数组中获取第一个字符串c
- 7. 如何获取Unicode字符串的Ruby子字符串?
- 8. 的Java获取第一个字符值的字符串
- 9. 获取并删除字符串的第一个字符
- 10. 获取字符串中第一个字符的Unicode值
- 11. Python:获取列表中第一个字符串的第一个字符?
- 12. 如何从字符串中获取第一个Y后的X个字符
- 13. 如何获取字符串中的第三个和第四个分隔字符之间的子字符串?
- 14. 如何从字符串中提取字符串的第一个数字
- 15. 如何通过Jquery或javaScript获取字符串的第一个字符?
- 16. 如何获取字符串的最后和第一个特殊字符?
- 17. 如何从sqlitedb查询中的第一个字符中获取字符串
- 18. 剥字符串的第一个字符
- 19. 如何提取第一个子字符串我包含一个字符串/?
- 20. 如何获取字符串的最后一个字符?
- 21. 如何获取C++中字符串的最后一个字符
- 22. 如何获取PHP中最后一个字符串的字符?
- 23. PHP:获取第一个字的第一个字符和第二个字符的三个字符
- 24. 字符串的第一个字符和最后一个字符
- 25. 如何从Ruby的字符串中获得第一行?
- 26. 获取字符串2个字符串
- 27. 如何获取字符串中的第一个元素?
- 28. 如何从一串字符串中获取字符串?
- 29. 获取分隔符前的第一个字符串?
- 30. 在bash字符串后如何获得的第一个数字
作为一个侧面说明,如果你是Rails中你可以做''史密斯'.first' – 2011-08-08 02:48:40