2011-06-04 92 views

回答

4

另一種解決方案

"string"[0].chr # => 's' 
5

這應該這樣做...

s[0,1] 

這將返回在1.8的第一個字節和1.9第一字符,但在每種情況下的結果是一個字符串。

如果你想要兩個中的第一個UTF-8字符序列,這是棘手的。正則表達式引擎是1.8與UTF-8意識一個地方,所以你可以使用:

s[/./u] 
+0

謝謝!但是這假定第一個字符不是多字節? – Dennis 2011-06-04 20:13:00

+0

這是有效的,但它可能會讓別人看到相同的代碼*爲什麼*你會這麼做。如果你在一個團隊中工作,最好在代碼中留下評論或者使用更明確的'[0] .chr'。 – coreyward 2011-06-04 20:15:26

+0

@丹尼斯,不完全。它在1.8中返回第一個*字節*,而在1.9中返回第一個*字符*。我已經更新了答案來討論編碼字符。 – DigitalRoss 2011-06-04 20:25:43