माणिक। split ('\ n') नई लाइन पर विभाजित नहीं है


82

यह स्ट्रिंग प्रत्येक "\ n" पर विभाजित क्यों नहीं होती है? (माणिक)

"ADVERTISING [7310]\n\t\tIRS NUMBER:\t\t\t\t061340408\n\t\tSTATE OF INCORPORATION:\t\t\tDE\n\t\tFISCAL YEAR END:\t\t\t0331\n\n\tFILING VALUES:\n\t\tFORM TYPE:\t\t10-Q\n\t\tSEC ACT:\t\t1934 Act\n\t".split('\n')
>> ["ADVERTISING [7310]\n\t\tIRS NUMBER:\t\t\t\t061340408\n\t\tSTATE OF INCORPORATION:\t\t\tDE\n\t\tFISCAL YEAR END:\t\t\t0331\n\n\tFILING VALUES:\n\t\tFORM TYPE:\t\t10-Q\n\t\tSEC ACT:\t\t1934 Act\n\t"]

जवाबों:


174

आपको जरूरत है .split("\n")। नई लाइन को ठीक से व्याख्या करने के लिए स्ट्रिंग प्रक्षेप की आवश्यकता होती है, और डबल कोट्स ऐसा करने का एक तरीका है।


39

रूबी में एक स्ट्रिंग के चारों ओर एक उद्धरण का मतलब है कि भागने के पात्रों की व्याख्या नहीं की गई है। C के विपरीत, जहाँ एकल उद्धरण एकल वर्ण को दर्शाते हैं। इस मामले '\n'में वास्तव में इसके बराबर है "\\n"

इसलिए यदि आप \nडबल कोट्स का उपयोग करने के लिए अपने कोड को बदलना चाहते हैं, तो आपको विभाजित करना होगा ।

.split("\n")


22

रूबी के पास तरीके String#each_lineऔर हैंString#lines

एक एनम देता है: http://www.ruby-doc.org/core-1.9.3/String.html#method-i-each_line

एक सरणी देता है: http://www.ruby-doc.org/core-2.1.2/String.html#method-i-lines

मैंने इसे आपके परिदृश्य के विरुद्ध परीक्षण नहीं किया, लेकिन मुझे यकीन है कि यह मैन्युअल रूप से न्यूलाइन चार्ट चुनने की तुलना में बेहतर काम करेगा।


लेकिन ध्यान दें कि #linesन्यूलाइन कैरेक्टर को नहीं हटाएगा, जबकि #splitवह ऐसा करेगा: "a\nb".lines => ["a\n", "b"]जबकि"a\nb".split("\n") => ["a", "b"]
टानियस

इसके अलावा, पाठ मोड (डिफ़ॉल्ट) में पढ़ी जाने वाली फ़ाइलों के लिए, नए अनुक्रमों का अनुवाद "\n"( देखें ) किया जाता है। इसलिए उन्हें मैन्युअल रूप से चुनने की आवश्यकता नहीं है। "\n"प्लेटफ़ॉर्म पर उपयोग करें ।
तानीस


3

आप इसके लिए एकल उद्धरण का उपयोग नहीं कर सकते हैं:

"ADVERTISING [7310]\n\t\tIRS NUMBER:\t\t\t\t061340408\n\t\tSTATE OF INCORPORATION:\t\t\tDE\n\t\tFISCAL YEAR END:\t\t\t0331\n\n\tFILING VALUES:\n\t\tFORM TYPE:\t\t10-Q\n\t\tSEC ACT:\t\t1934 Act\n\t".split("\n")
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.