如何獲取在Ruby 1.8(字節)和1.9(字符)中都可用的字符串的第一個字符?Ruby 1.8和1.9字符串差異
回答
另一種解決方案
"string"[0].chr # => 's'
這應該這樣做...
s[0,1]
這將返回在1.8的第一個字節和1.9第一字符,但在每種情況下的結果是一個字符串。
如果你想要兩個中的第一個UTF-8字符序列,這是棘手的。正則表達式引擎是1.8與UTF-8意識一個地方,所以你可以使用:
s[/./u]
謝謝!但是這假定第一個字符不是多字節? – Dennis 2011-06-04 20:13:00
這是有效的,但它可能會讓別人看到相同的代碼*爲什麼*你會這麼做。如果你在一個團隊中工作,最好在代碼中留下評論或者使用更明確的'[0] .chr'。 – coreyward 2011-06-04 20:15:26
@丹尼斯,不完全。它在1.8中返回第一個*字節*,而在1.9中返回第一個*字符*。我已經更新了答案來討論編碼字符。 – DigitalRoss 2011-06-04 20:25:43
- 1. 紅寶石1.8和1.9之間的字符串長度差異
- 2. 差異`陣列#to_s`用Ruby 1.8和Ruby 1.9
- 3. 的Ruby 1.8.7 VS 1.9 *字符串[Fixnum對象]差異
- 4. Ruby 1.9比Ruby 1.8慢?
- 5. Ruby 1.9.x和字符串編碼
- 6. ruby 1.8 to 1.9 ruby -v顯示ruby 1.9.2p0
- 7. 的差異日期字符串的Ruby 1.9.3和Ruby 1.8.7
- 8. 如何在Ruby 1.9和1.8中捕獲LoadError異常?
- 9. 字符串#包工作在1.9+,而不是1.8 *
- 10. Rails 1.8的Ruby 1.8和1.9的市場份額
- 11. 字符串差異
- 12. 如何打電話/需要Ruby 1.9的Ruby 1.8 Lib 1.9
- 13. 處理字符串編碼與紅寶石1.8相同的代碼和1.9
- 14. Ruby 1.9中的Unicode字符串
- 15. 學習Ruby - 1.8或1.9版本?
- 16. 我應該學習Ruby 1.8還是1.9?
- 17. 從Ruby 1.8移動代碼到1.9
- 18. Ruby 1.9的特殊字符
- 19. 差異WIN32和其他C字符串
- 20. 字符串差異php
- 21. JavaScript字符串差異
- 22. Objective-C字符串差異
- 23. TSQL字符串差異度
- 24. 字符串和字符串生成器之間的差異
- 25. Ruby-FFI(ruby 1.8):讀取UTF-16LE編碼字符串
- 26. 使用Ruby 1.9字符串作爲字節流而不是編碼字符串
- 27. 差B/W字符串和字符串
- 28. Ruby運算符差異
- 29. 的Clojure 1.8字符串與具有 '\\ R'
- 30. 在Ruby 1.8中支持Ruby 1.9的哈希語法
感謝您的隨訪。你是對的。 – Dennis 2011-06-05 14:11:03