Untuk mendapatkan n
karakter terakhir dari sebuah string, saya berasumsi Anda bisa menggunakan
ending = string[-n..-1]
tetapi jika panjang string kurang dari n
huruf, Anda mendapatkan nil
.
Solusi apa yang tersedia?
Latar belakang : Stringnya adalah ASCII biasa, dan saya memiliki akses ke ruby 1.9.1, dan saya menggunakan Objek Ruby Tua Biasa (tanpa kerangka kerja web).
chars
sebagai pengganti split.join
Karya Hard-BoiledWonderland . Saya tidak berpikir Anda membutuhkan yang terakhirto_s
jika Anda menggunakan join.n.xpath('ReferenceID').inner_text.split(//).last(7).join.to_s.to_i
saya membutuhkan to_s untuk melakukan to_i untuk mengekstrak nilai numerik."123".split(//).last(5).join
(Ruby 2.0.0)Nah, solusi termudah yang dapat saya pikirkan adalah:
(EDIT:
or
Operator memiliki prioritas lebih rendah daripada tugas, jadi pastikan untuk menggunakan||
sebagai gantinya.)sumber
string.reverse[0..n].reverse
, yang memberi saya sedetik "tunggu, kenapa dia melakukan itu?" (atau akankah jika saya tidak membacanya dalam konteks pertanyaan ini)||
bukanor
, atau beri tanda kurungstr[-n..-1] or str
.Di Ruby langsung (tanpa Rails), Anda bisa melakukannya
Sebagai contoh:
Jika Anda menggunakan Ruby on Rails, Anda dapat memanggil metode
first
danlast
objek string. Metode ini lebih disukai karena ringkas dan intuitif.Sebagai contoh:
sumber
sumber
"abcde".reverse[0,3].reverse
>>> "cde""ab".reverse[0,3].reverse
>>> "ab""a".reverse[0,3].reverse
>>> "a"Anda dapat menggunakan kode berikut:
sumber
Untuk mendapatkan n karakter terakhir dari sebuah string, Anda bisa melakukan ini
a [-n, n] jika a adalah array.
Ini dan contoh jika Anda menginginkannya.
ruby-1.9.2-p180: 006> a = "911234567890"
=> "911234567890"
ruby-1.9.2-p180: 009> a [-5,5]
=> "67890"
ruby-1.9.2-p180: 010> a [-7,7]
=> "4567890"
sumber
nil
dikembalikan, yang secara khusus ingin dihindari oleh pertanyaan ini.Sudahkah Anda mencoba regex?
Regex menangkap sebanyak mungkin karakter di akhir string, tetapi tidak lebih dari n. Dan menyimpannya dalam $ 1.
sumber
Perbaikan jawaban EmFi.
sumber