ฉันมีสาย
"1,2,3,4"
และฉันต้องการแปลงให้เป็นอาร์เรย์:
[1,2,3,4]
อย่างไร?
ฉันมีสาย
"1,2,3,4"
และฉันต้องการแปลงให้เป็นอาร์เรย์:
[1,2,3,4]
อย่างไร?
คำตอบ:
>> "1,2,3,4".split(",")
=> ["1", "2", "3", "4"]
หรือสำหรับจำนวนเต็ม:
>> "1,2,3,4".split(",").map { |s| s.to_i }
=> [1, 2, 3, 4]
หรือสำหรับ ruby รุ่นใหม่กว่า (> = 1.9 - ตามที่ Alex แนะนำ):
>> "1,2,3,4".split(",").map(&:to_i)
=> [1, 2, 3, 4]
"1,2,3,4".split(",")
เป็นสตริง
"1,2,3,4".split(",").map { |s| s.to_i }
เป็นจำนวนเต็ม
String Integer
ไม่มีที่ว่างเหมือนString
arr = "12345"
arr.split('')
output: ["1","2","3","4","5"]
String Integer
มีพื้นที่ว่างเป็นString
arr = "1 2 3 4 5"
arr.split(' ')
output: ["1","2","3","4","5"]
String Integer
ไม่มีที่ว่างเหมือนInteger
arr = "12345"
arr.split('').map(&:to_i)
output: [1,2,3,4,5]
arr = "abc"
arr.split('')
output: ["a","b","c"]
คำอธิบาย :
arr
-> สายอักขระที่คุณจะต้องดำเนินการใด ๆsplit()
-> เป็นวิธีที่แยกอินพุตและเก็บเป็นอาร์เรย์''
หรือ' '
หรือ','
-> เป็นค่าซึ่งจำเป็นต้องถูกลบออกจากสตริงที่กำหนดวิธีที่ง่ายที่สุดในการแปลงสตริงที่มีตัวคั่นเหมือนเครื่องหมายจุลภาคคือใช้วิธีแยกเท่านั้น
"1,2,3,4".split(',') # "1", "2", "3", "4"]
คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้วิธีการแยกในเอกสารทับทิม
แบ่ง str เป็นสตริงย่อยโดยอิงจากตัวคั่นส่งคืนอาร์เรย์ของสตริงย่อยเหล่านี้
หาก pattern เป็น String เนื้อหาจะถูกใช้เป็นตัวคั่นเมื่อแยก str หากรูปแบบเป็นช่องว่างเดียว str จะถูกแยกบนช่องว่างโดยที่ช่องว่างนำหน้าและเรียกใช้อักขระช่องว่างต่อเนื่องที่ละเว้น
ถ้า pattern เป็น Regexp, str จะถูกแบ่งโดยที่ pattern ตรงกัน เมื่อใดก็ตามที่รูปแบบตรงกับสตริงที่มีความยาวเป็นศูนย์ str จะถูกแบ่งออกเป็นอักขระแต่ละตัว หากรูปแบบมีกลุ่มการจับคู่ที่เกี่ยวข้องจะถูกส่งคืนในอาร์เรย์เช่นกัน
หากละเว้นรูปแบบค่าของ $; ถูกนำมาใช้. ถ้า $; เป็นศูนย์ (ซึ่งเป็นค่าเริ่มต้น) str ถูกแบ่งบนช่องว่างราวกับว่ามีการระบุ `'
หากไม่ระบุพารามิเตอร์ limit ฟิลด์การติดตาม null จะถูกระงับ ถ้า limit เป็นจำนวนบวกจำนวนฟิลด์ส่วนใหญ่จะถูกส่งคืน (ถ้า จำกัด เป็น 1 สตริงทั้งหมดจะถูกส่งคืนเป็นรายการเดียวในอาร์เรย์) หากเป็นค่าลบจะไม่มีการ จำกัด จำนวนฟิลด์ที่ส่งคืนและฟิลด์ null ที่ต่อท้ายจะไม่ถูกระงับ
"12345".each_char.map(&:to_i)
each_char
ทำโดยพื้นฐานเหมือนกับsplit('')
: มันแยกสตริงเป็นอาร์เรย์ของอักขระ
อืมฉันเพิ่งรู้แล้วว่าในคำถามเดิมสตริงมีเครื่องหมายจุลภาคดังนั้นคำตอบของฉันไม่เป็นประโยชน์จริง ๆ ;-( ..