How to split a split a string twice

前端 未结 2 1005
走了就别回头了
走了就别回头了 2021-01-27 12:44

I am trying to split a string twice

String example = response;
    String [] array = example.split(\"
\"); System.out.println(array[0]); S
2条回答
  •  悲&欢浪女
    2021-01-27 13:22

    This may seem like alot... but you should really be using a DOM parser for manipulating XML:

    import java.io.StringReader;
    
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    
    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.xml.sax.InputSource;
    import org.xml.sax.SAXParseException;
    
    public class ExtractXML {
        public static void main(String argv[]) {
            DocumentBuilderFactory docBuilderFactory = null;
            DocumentBuilder docBuilder = null;
            Document doc = null;
            String rawStr = "Response: 
    Input interpretation" + "Ireland
    " + "
    Result" + "Michael D. Higgins
    "; String docStr = rawStr.substring(rawStr.indexOf('<')); String answer = ""; try { docBuilderFactory = DocumentBuilderFactory.newInstance(); docBuilder = docBuilderFactory.newDocumentBuilder(); doc = docBuilder.parse(new InputSource(new StringReader(docStr))); } catch (SAXParseException e) { System.out.println("Doc missing root node, adding and trying again..."); docStr = String.format("%s", docStr); try { doc = docBuilder.parse(new InputSource(new StringReader(docStr))); } catch (Exception e1) { System.out.printf("Malformed XML: %s\n", e1.getMessage()); System.exit(0); } } catch (Exception e) { System.out.printf("Something went wrong: %s\n", e.getMessage()); } finally { try { // Normalize text representation: doc.getDocumentElement().normalize(); NodeList titles = doc.getElementsByTagName("title"); for (int tIndex = 0; tIndex < titles.getLength(); tIndex++) { Node node = titles.item(tIndex); if (node.getTextContent().equals("Result")) { Node parent = node.getParentNode(); NodeList children = parent.getChildNodes(); for (int cIndex = 0; cIndex < children.getLength(); cIndex++) { Node child = children.item(cIndex); if (child.getNodeName() == "sectioncontents") { answer = child.getTextContent(); } } } } System.out.printf("Answer: %s\n", answer); } catch (Exception e) { e.printStackTrace(); } } } }

    Output:

    [Fatal Error] :1:98: The markup in the document following the root element must be well-formed.
    Doc missing root node, adding and trying again...
    Answer: Michael D. Higgins
    

提交回复
热议问题