मैं एक ऐसी फाइल को पार्स करने की कोशिश कर रहा हूं जिसमें पाइप सीमित मूल्यों वाली प्रत्येक पंक्ति है। जब मैं विभाजित विधि में पाइप डिलीमीटर से बच नहीं पाया, तो यह ठीक से काम नहीं करता था, लेकिन नीचे से पाइप से बचने के बाद यह सही ढंग से काम करता था।String.split को बचने के लिए पाइप डेलीमीटर क्यों चाहिए?
private ArrayList<String> parseLine(String line) {
ArrayList<String> list = new ArrayList<String>();
String[] list_str = line.split("\\|"); // note the escape "\\" here
System.out.println(list_str.length);
System.out.println(line);
for(String s:list_str) {
list.add(s);
System.out.print(s+ "|");
}
return list;
}
किसी कृपया समझा क्यों पाइप चरित्र split()
विधि के लिए भाग निकले किए जाने की आवश्यकता कर सकते हैं?
जवाब नीचे दिए "क्यों," लेकिन सिर्फ FYI करें, यदि आप एक शाब्दिक स्ट्रिंग मिलान करने के लिए कोशिश कर रहे हैं आप भी [Pattern.quote] पर (लग सकता है http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html#quote(java.lang.String))। यह एक 'स्ट्रिंग' लेता है और एक रेगेक्स 'स्ट्रिंग' देता है जो इनपुट से मेल खाता है (यानी, यह आपके लिए सभी भागने का ख्याल रखता है)। 'पैटर्न.कोटे' – yshavit
+1 इस स्पष्टीकरण के लिए धन्यवाद। मैं लगभग डबल बचने के लिए हमेशा भूल जाते हैं। अब जब मुझे पता है कि ऐसा क्यों है, यह निश्चित रूप से मुझे अब से याद रखने में मदद करेगा। – redDevil