1

当我们扩展 DefaultHandler 时,我们通常会覆盖 characters 函数。

我想知道哪种方法可以更有效地提取提供的字符串...


  1. 它会使用 for 循环和 StringBuilder 吗?

    @Override
    public void characters(char[] ch, int start, int length) throws SAXException {
        StringBuilder sb = new StringBuilder(length); 
        for(int i=start; i<start+length; i++)
            sb.append(ch[i]);
        String values = sb.toString();
    }
    
  2. 它会使用一个简单的子字符串吗?

    @Override
    public void characters(char[] ch, int start, int length) throws SAXException {
        String values = (new String(ch)).substring(start, start + length);
    }
    
  3. 还有另一种方法吗?

4

2 回答 2

5

一个构造函数,它需要一个 char[] 和一个范围,如果这是您正在寻找的:

new String(ch, start, length);
于 2012-05-28T08:20:03.573 回答
0

字符串类具有新的构造函数,可以满足您的要求如下

1) new String(char[] value)

2) new String(char[] value, int StartIndex, int numberOfCharacter)
于 2012-05-28T08:26:42.597 回答