回答
您可以使用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. 如何獲取字符串的第一個字符
- 4. 獲取字符串中子字符串的第一個字母
- 5. C#:如何獲得一個字符串的第一個字符?
- 6. 獲取第二個字符/字符串出現的字符串
- 7. 如何獲取Ruby中兩個字符之間的字符串?
- 8. 如何從Ruby 1.8.7中的utf-8字符串獲取第i個字符?
- 9. 獲取每個單詞的第一個字符的字符串
- 10. 如何獲取Unicode字符串的Ruby子字符串?
- 11. 如何獲取函數來遍歷字符串並替換字符串的第一個字符,第二個等?
- 12. 從字符串數組中獲取第一個字符串c
- 13. 如何獲取字符串中第一個字母的位置
- 14. 的Java獲取第一個字符值的字符串
- 15. 樹枝:如何獲得字符串中的第一個字符
- 16. 獲取UTF-8字符串的第一個字符
- 17. 獲取並刪除字符串的第一個字符
- 18. 獲取字符串中第一個字符的Unicode值
- 19. 在java中的字符串操作,獲取第一個字符
- 20. Python:獲取列表中第一個字符串的第一個字符?
- 21. 如何從字符串中獲取第一個Y後的X個字符
- 22. 如何獲得的第一個字一個字符串在Excel
- 23. 獲取字符串中第一個出現的多個字符串之一
- 24. 如何獲取字符串中的第三個和第四個分隔字符之間的子字符串?
- 25. 如何從另一個字符串獲取字符串值?
- 26. 如何從另一個字符串獲取字符串值
- 27. string [0]從字符串中獲取第一個字符
- 28. 從Ruby中的一個長字符串中提取字符串
- 29. 獲取第一個空格字符和'='字符之間的字符串
- 30. 如何從字符串中獲取第2個和第4個字符
作爲一個側面說明,如果你是Rails中你可以做''史密斯'.first' – 2011-08-08 02:48:40