字符串搜索的性能

时间:2013-03-26 03:35:54

标签: java string servlets

我有一个Servlet,它需要处理大小约为2 MB的Http响应文档中的1个XML元素,并将元素中的内容返回给客户端。目前我在做这个

    if (response.indexOf("<?xml") != -1
                && response.indexOf("</Data>") != -1) {
            return response.substring(response.indexOf("<?xml"),
                    response.indexOf("</Data>") + 7);

只是想知道这是否是搜索标签的最有效方式,还是有更好的方法。

1 个答案:

答案 0 :(得分:1)

你不太可能能够加快算法的速度,因为IndexOf</Data>前往的唯一“错误开始”将是结束标记,而发现<?xml非常接近文件的开头。

加快代码速度的一种方法是避免多次调用IndexOf

int idxXml = response.indexOf("<?xml");
int idxData = response.indexOf("</Data>");
if (idxXml != -1 && idxData != -1) {
    return response.substring(idxXml, idxData+7);
}