java नई लाइन द्वारा विभाजित जावा स्ट्रिंग





7 Answers

यदि आप खाली लाइन नहीं चाहते हैं:

String.split("[\\r\\n]+")
java regex split newline

मैं स्ट्रिंग को विभाजित करने के लिए एक regex का उपयोग कर JTextArea में पाठ को विभाजित करने की कोशिश कर रहा हूं \n हालांकि, यह काम नहीं करता है और मैंने \r\n|\r|n और regexes के कई अन्य संयोजनों द्वारा भी कोशिश की है। कोड:

public void insertUpdate(DocumentEvent e) {
    String split[], docStr = null;
    Document textAreaDoc = (Document)e.getDocument();

    try {
        docStr = textAreaDoc.getText(textAreaDoc.getStartPosition().getOffset(), textAreaDoc.getEndPosition().getOffset());
    } catch (BadLocationException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    split = docStr.split("\\n");
}



String.split(System.getProperty("line.separator"));

यह प्रणाली स्वतंत्र होना चाहिए




शायद यह काम करेगा:

विभाजन विधि के पैरामीटर से डबल बैकस्लाश को हटाएं:

split = docStr.split("\n");



यहां दिए गए सभी उत्तर वास्तव में नई लाइनों की जावा परिभाषा का सम्मान नहीं करते हैं जैसे कि BufferedReader # readline। जावा \n , \r और \r\n को नई लाइन के रूप में स्वीकार कर रहा है। कुछ उत्तर कई खाली लाइनों या विकृत फ़ाइलों से मेल खाते हैं। E..g। <sometext>\n\r\n<someothertext> [\r\n]+ का उपयोग करते समय परिणामस्वरूप दो पंक्तियां होंगी।

String lines[] = string.split("(\r\n|\r|\n)", -1);

इसके विपरीत, उपर्युक्त उत्तर में निम्नलिखित गुण हैं:

  • यह एक नई लाइन की जावा परिभाषा का अनुपालन करता है जैसे कि BufferedReader इसका उपयोग कर रहा है
  • यह कई नई लाइनों से मेल नहीं खाता है
  • यह पिछली खाली रेखाओं को हटा नहीं देता है



String lines[] =String.split( System.lineSeparator())




यदि, किसी कारण से, आप String.split का उपयोग नहीं करना चाहते हैं (उदाहरण के लिए, नियमित अभिव्यक्तियों के कारण ) और आप जावा 8 या नए पर कार्यात्मक प्रोग्रामिंग का उपयोग करना चाहते हैं:

List<String> lines = new BufferedReader(new StringReader(string))
        .lines()
        .collect(Collectors.toList());



  • इस आशा की कोशिश करें कि यह आपके लिए सहायक था
 String split[], docStr = null;
Document textAreaDoc = (Document)e.getDocument();

try {
    docStr = textAreaDoc.getText(textAreaDoc.getStartPosition().getOffset(), textAreaDoc.getEndPosition().getOffset());
} catch (BadLocationException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

split = docStr.split("\n");



Related