Tôi có văn bản với độ dài ~ 700. Làm thế nào để tôi chỉ nhận được ~ 30 ký tự đầu tiên?
Tôi có văn bản với độ dài ~ 700. Làm thế nào để tôi chỉ nhận được ~ 30 ký tự đầu tiên?
Câu trả lời:
Nếu bạn có văn bản của bạn trong your_text
biến, bạn có thể sử dụng:
your_text[0..29]
Sử dụng String#slice
, cũng có bí danh là []
.
a = "hello there"
a[1] #=> "e"
a[1,3] #=> "ell"
a[1..3] #=> "ell"
a[6..-1] #=> "there"
a[-3,2] #=> "er"
a[-4..-2] #=> "her"
a[12..-1] #=> nil
a[-2..-4] #=> ""
a[/[aeiou](.)\1/] #=> "ell"
a[/[aeiou](.)\1/, 0] #=> "ell"
a[/[aeiou](.)\1/, 1] #=> "l"
a[/[aeiou](.)\1/, 2] #=> nil
a["lo"] #=> "lo"
a["bye"] #=> nil
-1
được sử dụng để đi đến cuối chuỗi, vì vậy a[1..-1] #=> "ello there"
.
a[-4,-2]
. Ký hiệu hợp lệ duy nhất là hai dấu chấm : a[-4..-2]
. Học nó một cách khó khăn.
Vì bạn đã gắn thẻ Rails, bạn có thể sử dụng cắt ngắn:
http://api.rubyonrails.org/groupes/ActionView/Helpers/TextHelper.html#method-i-truncate
Thí dụ:
truncate(@text, :length => 17)
Trích dẫn cũng rất hay để biết, nó cho phép bạn hiển thị một đoạn trích của một văn bản Giống như vậy:
excerpt('This is an example', 'an', :radius => 5)
# => ...s is an exam...
http://api.rubyonrails.org/groupes/ActionView/Helpers/TextHelper.html#method-i-excerpt
nếu bạn cần nó trong đường ray, bạn có thể sử dụng đầu tiên ( mã nguồn )
'1234567890'.first(5) # => "12345"
cuối cùng cũng có ( mã nguồn )
'1234567890'.last(2) # => "90"
cách khác kiểm tra từ / đến ( mã nguồn ):
"hello".from(1).to(-2) # => "ell"
NoMethodError: undefined method `first' for "abcde":String
, đó là một triển khai đường ray?
Nếu bạn muốn một chuỗi, thì các câu trả lời khác đều ổn, nhưng nếu những gì bạn đang tìm kiếm là một vài chữ cái đầu tiên dưới dạng ký tự, bạn có thể truy cập chúng dưới dạng danh sách:
your_text.chars.take(30)
your_text[0...30]