1

DefaultHandlerを拡張するときは、通常、文字関数をオーバーライドします。

提供された文字列を抽出するためのより効率的な方法はどれでしょうか...


  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 に答える