दिलचस्प पोस्ट
सीएसएस वर्गों के बीच अंतर क्या है। Foo.bar (बिना अंतरिक्ष) और .foo .बार (अंतरिक्ष के साथ) फ़ायरफ़ॉक्स में "यह कनेक्शन अविश्वस्त" प्रमाण पत्र को निष्क्रिय कैसे करें? जानना जब संपादित करें संपादित किया जाता है दृश्य स्टूडियो 2015 के साथ सी # 7 का उपयोग कैसे करें? (13: अनुमति अस्वीकृत) अपस्ट्रीम से कनेक्ट करते समय: सही-संरेखित फ्लेक्स आइटम? HttpServletRequest से यूआरएल टुकड़ा पहचानकर्ता कैसे प्राप्त करें रेल 3 में बनाम बनाम "कोई सामग्री-सुरक्षा नीति मेटा टैग नहीं मिला।" मेरे फोनगैप एप्लिकेशन में त्रुटि मोबाइल ब्राउज़र का पता लगा रहा है IOS में एकाधिक स्टोरीबोर्ड का उपयोग करना अजगर में मेमोरी एड्रेस एक्सेस करें मैं एक जावा एप्लिकेशन कैसे लिख सकता हूं जो खुद रनटाइम पर अपडेट कर सकता है? विंडोज पर पायथन 2.7 के लिए बिल्डिंग एलएक्सएमएल मेन्यूइटम पर एक्शनलेआउट कुछ नहीं करता है

जावा: स्ट्रिंग विभाजन (): मैं अंत में खाली स्ट्रिंग को शामिल करना चाहता हूं

मेरे पास निम्नलिखित स्ट्रिंग है:

String str = "\nHERE\n\nTHERE\n\nEVERYWHERE\n\n"; 

यदि आप इसे प्रिंट करते हैं, तो यह इस तरह का उत्पादन होगा (बेशक \n "सचमुच" मुद्रित नहीं होगा):

 \n HERE\n \n THERE\n \n EVERYWHERE\n \n \n 

जब मैं विधि split("\n") कॉल करता हूं, तो मैं सभी स्ट्रिंग को नई लाइन ( \n ) वर्णों के अंत में खाली स्ट्रिंग्स के बीच भी प्राप्त करना चाहता हूं।

उदाहरण के लिए, यदि मैं आज यह करता हूं:

 String strArray[] = str.split("\n"); System.out.println("strArray.length - " + strArray.length); for(int i = 0; i < strArray.length; i++) System.out.println("strArray[" + i + "] - \"" + strArray[i] + "\""); 

मैं इसे इस तरह आउट आउट करना चाहता हूं (आउटपुट ए):

 strArray.length - 8 strArray[0] - "" strArray[1] - "HERE" strArray[2] - "" strArray[3] - "THERE" strArray[4] - "" strArray[5] - "EVERYWHERE" strArray[6] - "" strArray[7] - "" 

वर्तमान में, यह इस तरह से प्रिंट करता है (आउटपुट बी), और कोई भी समाप्त होने वाला खाली स्ट्रिंग छोड़ दिया जाता है:

 strArray.length - 6 strArray[0] - "" strArray[1] - "HERE" strArray[2] - "" strArray[3] - "THERE" strArray[4] - "" strArray[5] - "EVERYWHERE" 

मैं split() विधि को कैसे आउटपुट ए में खाली स्ट्रिंग में शामिल कर सकता हूं? मैं निश्चित रूप से कोड का एक बहु-रेखा वाला टुकड़ा लिख ​​सकता हूं, लेकिन जानना चाहता था कि इससे पहले कि मैं इसे लागू करने की कोशिश में अपना समय बर्बाद कर दूं, अगर मेरी मदद करने के लिए एक साधारण विधि या कोड की एक अतिरिक्त दो या दो पंक्तियां थीं धन्यवाद!

Solutions Collecting From Web of "जावा: स्ट्रिंग विभाजन (): मैं अंत में खाली स्ट्रिंग को शामिल करना चाहता हूं"

str.split("\n", -1) (नकारात्मक limit तर्क के साथ) जब split को शून्य दिया जाता है या कोई limit तर्क नहीं होता limit यह खाली क्षेत्रों को छोड़ देता है, और जब यह सकारात्मक limit तर्क देता है, तो उस संख्या में फ़ील्ड की संख्या को सीमित करता है, लेकिन एक नकारात्मक सीमा का मतलब है कि किसी भी संख्या में फ़ील्ड को अनुमति दें और खाली फ़ील्ड । यह यहाँ प्रलेखित है और व्यवहार पर्ल से लिया गया है।

एक-तर्क विभाजन पद्धति को खाली स्ट्रिंग विभाजन के पीछे अनदेखा करने के लिए निर्दिष्ट किया गया है, लेकिन जो संस्करण "सीमा" तर्क को सुरक्षित रखता है, इसलिए एक विकल्प उस संस्करण का उपयोग बड़ी सीमा के साथ किया जाएगा

 String strArray[] = str.split("\n", Integer.MAX_VALUE); 

निजी तौर पर, मुझे विभाजन के लिए गवावा उपयोगिता पसंद है:

 System.out.println(Iterables.toString( Splitter.on('\n').split(input))); 

तब अगर आप खाली स्ट्रिंग व्यवहार को कॉन्फ़िगर करना चाहते हैं, तो आप ऐसा कर सकते हैं:

 System.out.println(Iterables.toString( Splitter.on('\n').omitEmptyStrings().split(input)));