อาร์เรย์ Ruby เป็นการแปลงสตริง


178

ฉันมีทับทิมเหมือน['12','34','35','231']กัน

'12','34','35','231'ฉันต้องการที่จะแปลงเป็นสตริงเช่น

ฉันจะทำสิ่งนั้นได้อย่างไร

คำตอบ:


315

ฉันจะเข้าร่วมสนุกกับ:

['12','34','35','231'].join(', ')

แก้ไข:

"'#{['12','34','35','231'].join("', '")}'"

การแก้ไขสตริงบางอย่างเพื่อเพิ่มเครื่องหมายคำพูดเดี่ยวและคำสุดท้ายสุดท้าย: P


1
ผลลัพธ์เป็น "12,34,35,231" ไม่มีคำพูดเดียวในผลลัพธ์
เบอร์นาร์ด

1
โอเคเพิ่มการแก้ไขสตริงเพื่อเพิ่มเครื่องหมายคำพูดเดี่ยวและคำสุดท้ายสุดท้าย: P
corroded

วิธีการคืนค่านี้
zx1986

คุณหมายถึงอะไรกลับไปใช้ @ zx1986
สึกกร่อน

@corroded ขออภัยฉันเข้าใจแล้ว JSON.parse("[12, 39, 100]")จะส่งกลับอาร์เรย์
zx1986

43
> a = ['12','34','35','231']
> a.map { |i| "'" + i.to_s + "'" }.join(",")
=> "'12','34','35','231'"

6
อาจจะใช้"'#{i}'"แทน
Mladen Jablanović

ไม่คิดว่าจำเป็นต้องใช้แผนที่ เข้าร่วมควรทำเคล็ดลับ ดูด้านล่าง
djburdick

31

ลองรหัสนี้ ['12','34','35','231']*","

จะให้ผลลัพธ์"12,34,35,231"

ฉันหวังว่านี่คือผลลัพธ์ที่คุณได้โปรดแจ้งให้เราทราบ


ฉันคิดว่า OP จำเป็นต้องมีเครื่องหมายคำพูดเดี่ยวเช่นกัน
Laf


9
string_arr.map(&:inspect).join(',') # or other separator

สิ่งนี้ไม่ได้สร้างผลลัพธ์ที่ถูกต้อง - ค่าจะต้องห่อด้วยเครื่องหมายคำพูดเดี่ยว หากนี่คือเอาต์พุตที่ต้องการดังนั้น string_arr.join (",") จะเป็นตัวเลือกที่ดีกว่า
Sean Cameron

ฌอนคุณผิด คุณเรียกใช้นิพจน์อย่างน้อยหนึ่งครั้งหรือไม่?
avihil

มันยังคงผิด มันส่งผลในอัญประกาศรอบรายการอาร์เรย์ไม่ใช่คำพูดเดียว นอกจากนี้ยังขึ้นอยู่กับสมมติฐานเกี่ยวกับรูปแบบที่ "inspect ()" พิมพ์ข้อมูลซึ่งทำให้มันบอบบาง
Andrew Hodgkinson

['1', '2', '3']. แผนที่ {| o | "\ '# {o} \'"} .join (',')
avihil

7

ฉันพบวิธีนี้อ่านและทับทิม:

add_quotes =- > x{"'#{x}'"}

p  ['12','34','35','231'].map(&add_quotes).join(',') => "'12','34','35','231'"





2

คุณสามารถใช้วิธีการเขียนโปรแกรมการทำงานบางอย่างเปลี่ยนข้อมูล:

['12','34','35','231'].map{|i| "'#{i}'"}.join(",")


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.