public CharBlockArray append(char[] chars, int start, int length) {int offset = start;int remain = length;while (remain > 0) {if (this.current.length == this.blockSize) {addBlock();}int toCopy = remain;int remainingInBlock = this.blockSize - this.current.length;if (remainingInBlock < toCopy) {toCopy = remainingInBlock;}System.arraycopy(chars, offset, this.current.chars, this.current.length, toCopy);offset += toCopy;remain -= toCopy;this.current.length += toCopy;}this.length += length;return this;}

public CharBlockArray append ( char [ ] chars , int start , int length ) { int offset = start ; int remain = length ; while ( remain > 0 ) { if ( this . current . length == this . blockSize ) { addBlock ( ) ; } int toCopy = remain ; int remainingInBlock = this . blockSize - this . current . length ; if ( remainingInBlock < toCopy ) { toCopy = remainingInBlock ; } System . arraycopy ( chars , offset , this . current . chars , this . current . length , toCopy ) ; offset += toCopy ; remain -= toCopy ; this . current . length += toCopy ; } this . length += length ; return this ; }
public virtual CharBlockArray Append(char[] chars, int start, int length){int offset = start;int remain = length;while (remain > 0){if (this.current.length == this.blockSize){AddBlock();}int toCopy = remain;int remainingInBlock = this.blockSize - this.current.length;if (remainingInBlock < toCopy){toCopy = remainingInBlock;}Array.Copy(chars, offset, this.current.chars, this.current.length, toCopy);offset += toCopy;remain -= toCopy;this.current.length += toCopy;}this.length += length;return this;}
