ลองนึกภาพไฟล์ข้อความที่แต่ละระเบียน csv อาจมีจำนวนฟิลด์ต่างกัน ภารกิจคือการเขียนโค้ดเพื่อแสดงจำนวนฟิลด์ที่มีในแต่ละเรคคอร์ดของไฟล์ คุณสามารถสมมติว่าไม่มีบรรทัดส่วนหัวในไฟล์และสามารถอ่านได้จากไฟล์หรืออินพุตมาตรฐานตามที่คุณเลือก
คุณสามารถสมมติรุ่นของrfc4180สำหรับกฎ csv ซึ่งฉันจะอธิบายด้านล่างสำหรับคำจำกัดความของแต่ละบรรทัดของไฟล์ นี่เป็นเวอร์ชั่นที่แก้ไขเล็กน้อยของส่วนที่เกี่ยวข้องของข้อมูลจำเพาะ:
คำจำกัดความของรูปแบบ CSV
แต่ละระเบียนจะอยู่ในบรรทัดที่แยกต่างหากคั่นด้วยตัวแบ่งบรรทัด (CRLF) ตัวอย่างเช่น:
aaa,bbb,ccc CRLF zzz,yyy,xxx CRLFระเบียนสุดท้ายในไฟล์อาจมีหรือไม่มีตัวแบ่งบรรทัดสิ้นสุด ตัวอย่างเช่น:
aaa,bbb,ccc CRLF zzz,yyy,xxx
(กฎข้อ 3. ใช้ไม่ได้กับการท้าทายนี้)
ภายในแต่ละระเบียนอาจมีหนึ่งหรือมากกว่าหนึ่งช่องคั่นด้วยเครื่องหมายจุลภาค ช่องว่างถือเป็นส่วนหนึ่งของเขตข้อมูลและไม่ควรละเว้น
แต่ละฟิลด์อาจมีหรือไม่มีก็ได้ในเครื่องหมายคำพูดคู่ หากเขตข้อมูลไม่ได้อยู่ในเครื่องหมายคำพูดคู่การอ้างอิงสองครั้งอาจไม่ปรากฏในเขตข้อมูล ตัวอย่างเช่น:
"aaa","bbb","ccc" CRLF zzz,yyy,xxxฟิลด์ที่มีตัวแบ่งบรรทัด (CRLF) เครื่องหมายคำพูดคู่และเครื่องหมายจุลภาคควรอยู่ในเครื่องหมายคำพูดคู่ ตัวอย่างเช่น:
"aaa","b CRLF bb","ccc" CRLF zzz,yyy,xxxหากมีการใช้เครื่องหมายอัญประกาศคู่เพื่อใส่เขตข้อมูลดังนั้นเครื่องหมายอัญประกาศคู่ที่ปรากฏภายในเขตข้อมูลจะต้องถูกหลีกเลี่ยงโดยนำหน้าด้วยเครื่องหมายคำพูดคู่อื่น ตัวอย่างเช่น:
"aaa","b""bb","ccc"
ตัวอย่าง
การป้อนข้อมูล:
,"Hello, World!"
"aaa","b""bb","ccc"
zzz,yyy,
"aaa","b
bb","ccc","fish",""
ควรให้ผลลัพธ์:
2, 3, 3, 5
คุณสามารถให้ค่าผลลัพธ์ในวิธีที่คุณสะดวกที่สุด
ห้องสมุด
คุณสามารถใช้ห้องสมุดใดก็ได้ที่คุณชอบ
คำตอบที่ดีเลิศ แต่เรายังขาดบรรทัดคำสั่ง / คำตอบ bash ซึ่งจะยอดเยี่ยมโดยเฉพาะ