在 Java 中,当每个 block 开头的分隔符与每个 block 末尾的分隔符不同时,将字符串拆分为 block 数组的最佳方法是什么?
例如,假设我有 String string = "abc 1234 xyz abc 5678 xyz"
。
我想应用某种复杂的分割
以获得{"1234","5678"}
。
首先想到的是:
String[] parts = string.split("abc");
for (String part : parts)
{
String[] blocks = part.split("xyz");
String data = blocks[0];
// Do some stuff with the 'data' string
}
有没有更简单/更干净/更有效的方法?
我的目的(正如您可能已经猜到的那样)是解析 XML 文档。
我想将给定的 XML 字符串拆分为给定标记的 Inner-XML block 。
例如:
String xml = "<tag>ABC</tag>White Spaces Only<tag>XYZ</tag>";
String[] blocks = Split(xml,"<tag>","</tag>"); // should be {"ABC","XYZ"}
如何实现String[] Split(String str,String prefix,String suffix)
?
谢谢
最佳答案
最好是使用专用的 XML 解析器之一。 请参阅this discussion关于 Java 的最佳 XML 解析器。
我找到了这个DOM XML parser example作为一个简单而好的。
关于java - 当前缀分隔符和后缀分隔符不同时,分割字符串的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21266500/