Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
   /*
    * Licensed to the Apache Software Foundation (ASF) under one or more
    * contributor license agreements.  See the NOTICE file distributed with
    * this work for additional information regarding copyright ownership.
    * The ASF licenses this file to You under the Apache License, Version 2.0
    * (the "License"); you may not use this file except in compliance with
    * the License.  You may obtain a copy of the License at
    *
    *      http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.wicket.util.string;
  
This is a copy or combination of java.lang.StringBuffer and java.lang.String It has a special method getValue() which returns the internal char array. Hashcode and equals methods are also implemented. This AppendingStringBuffer is not synchronized.

Author(s):
Johan Compagner
See also:
java.lang.StringBuffer
  
  
  public final class AppendingStringBuffer implements java.io.SerializableCharSequence
  {
use serialVersionUID from JDK 1.0.2 for interoperability
  
  	static final long serialVersionUID = 1L;
  
  	private static final AppendingStringBuffer NULL = new AppendingStringBuffer("null");
  	private static final StringBuffer SB_NULL = new StringBuffer("null");

The value is used for character storage.

Serial:
  
  	private char value[];

The count is the number of characters in the buffer.

Serial:
  
  	private int count;

Constructs a string buffer with no characters in it and an initial capacity of 16 characters.
  
  	{
  		this(16);
  	}

Constructs a string buffer with no characters in it and an initial capacity specified by the length argument.

Parameters:
length the initial capacity.
Throws:
java.lang.NegativeArraySizeException if the length argument is less than 0.
  
  	public AppendingStringBuffer(int length)
  	{
  		 = new char[length];
  	}

Constructs a string buffer so that it represents the same sequence of characters as the string argument; in other words, the initial contents of the string buffer is a copy of the argument string. The initial capacity of the string buffer is 16 plus the length of the string argument.

Parameters:
str the initial contents of the buffer.
Throws:
java.lang.NullPointerException if str is null
  
  	{
  		this(str.length() + 16);
  		append(str);
  	}

Returns the length (character count) of this string buffer.

Returns:
the length of the sequence of characters currently represented by this string buffer.
  
 	public int length()
 	{
 		return ;
 	}

Returns the current capacity of the String buffer. The capacity is the amount of storage available for newly inserted characters; beyond which an allocation will occur.

Returns:
the current capacity of this string buffer.
 
 	public int capacity()
 	{
 		return .;
 	}

Ensures that the capacity of the buffer is at least equal to the specified minimum. If the current capacity of this string buffer is less than the argument, then a new internal buffer is allocated with greater capacity. The new capacity is the larger of:
  • The minimumCapacity argument.
  • Twice the old capacity, plus 2.
If the minimumCapacity argument is nonpositive, this method takes no action and simply returns.

Parameters:
minimumCapacity the minimum desired capacity.
 
 	public void ensureCapacity(int minimumCapacity)
 	{
 		if (minimumCapacity > .)
 		{
 			expandCapacity(minimumCapacity);
 		}
 	}

This implements the expansion semantics of ensureCapacity but is unsynchronized for use internally by methods which are already synchronized.

Parameters:
minimumCapacity
See also:
java.lang.StringBuffer.ensureCapacity(int)
 
 	private void expandCapacity(int minimumCapacity)
 	{
 		int newCapacity = (. + 1) * 2;
 		if (newCapacity < 0)
 		{
 			newCapacity = .;
 		}
 		else if (minimumCapacity > newCapacity)
 		{
 			newCapacity = minimumCapacity;
 		}
 
 		char newValue[] = new char[newCapacity];
 		System.arraycopy(, 0, newValue, 0, );
 		 = newValue;
 	}

Sets the length of this String buffer. This string buffer is altered to represent a new character sequence whose length is specified by the argument. For every nonnegative index k less than newLength, the character at index k in the new character sequence is the same as the character at index k in the old sequence if k is less than the length of the old character sequence; otherwise, it is the null character '\u0000'. In other words, if the newLength argument is less than the current length of the string buffer, the string buffer is truncated to contain exactly the number of characters given by the newLength argument.

If the newLength argument is greater than or equal to the current length, sufficient null characters ('\u0000') are appended to the string buffer so that length becomes the newLength argument.

The newLength argument must be greater than or equal to 0.

Parameters:
newLength the new length of the buffer.
Throws:
java.lang.IndexOutOfBoundsException if the newLength argument is negative.
See also:
java.lang.StringBuffer.length()
 
 	public void setLength(int newLength)
 	{
 		if (newLength < 0)
 		{
 			throw new StringIndexOutOfBoundsException(newLength);
 		}
 
 		if (newLength > .)
 		{
 			expandCapacity(newLength);
 		}
 
 		if ( < newLength)
 		{
 			for (;  < newLength++)
 			{
 				[] = '\0';
 			}
 		}
 		else
 		{
 			 = newLength;
 		}
 	}

The specified character of the sequence currently represented by the string buffer, as indicated by the index argument, is returned. The first character of a string buffer is at index 0, the next at index 1, and so on, for array indexing.

The index argument must be greater than or equal to 0, and less than the length of this string buffer.

Parameters:
index the index of the desired character.
Returns:
the character at the specified index of this string buffer.
Throws:
java.lang.IndexOutOfBoundsException if index is negative or greater than or equal to length().
See also:
java.lang.StringBuffer.length()
 
 	public char charAt(int index)
 	{
 		if ((index < 0) || (index >= ))
 		{
 			throw new StringIndexOutOfBoundsException(index);
 		}
 		return [index];
 	}

Characters are copied from this string buffer into the destination character array dst. The first character to be copied is at index srcBegin; the last character to be copied is at index srcEnd-1. The total number of characters to be copied is srcEnd-srcBegin. The characters are copied into the subarray of dst starting at index dstBegin and ending at index:

 dstbegin + (srcEnd - srcBegin) - 1
 

Parameters:
srcBegin start copying at this offset in the string buffer.
srcEnd stop copying at this offset in the string buffer.
dst the array to copy the data into.
dstBegin offset into dst.
Throws:
java.lang.NullPointerException if dst is null.
java.lang.IndexOutOfBoundsException if any of the following is true:
  • srcBegin is negative
  • dstBegin is negative
  • the srcBegin argument is greater than the srcEnd argument.
  • srcEnd is greater than this.length(), the current length of this string buffer.
  • dstBegin+srcEnd-srcBegin is greater than dst.length
 
 	public void getChars(int srcBeginint srcEndchar dst[], int dstBegin)
 	{
 		if (srcBegin < 0)
 		{
 			throw new StringIndexOutOfBoundsException(srcBegin);
 		}
 		if ((srcEnd < 0) || (srcEnd > ))
 		{
 			throw new StringIndexOutOfBoundsException(srcEnd);
 		}
 		if (srcBegin > srcEnd)
 		{
 			throw new StringIndexOutOfBoundsException("srcBegin > srcEnd");
 		}
 		System.arraycopy(srcBegindstdstBeginsrcEnd - srcBegin);
 	}

The character at the specified index of this string buffer is set to ch. The string buffer is altered to represent a new character sequence that is identical to the old character sequence, except that it contains the character ch at position index.

The index argument must be greater than or equal to 0, and less than the length of this string buffer.

Parameters:
index the index of the character to modify.
ch the new character.
Throws:
java.lang.IndexOutOfBoundsException if index is negative or greater than or equal to length().
See also:
java.lang.StringBuffer.length()
 
 	public void setCharAt(int indexchar ch)
 	{
 		if ((index < 0) || (index >= ))
 		{
 			throw new StringIndexOutOfBoundsException(index);
 		}
 		[index] = ch;
 	}

Appends the string representation of the Object argument to this string buffer.

The argument is converted to a string as if by the method String.valueOf, and the characters of that string are then appended to this string buffer.

Parameters:
obj an Object.
Returns:
a reference to this AppendingStringBuffer object.
See also:
java.lang.String.valueOf(java.lang.Object)
java.lang.StringBuffer.append(java.lang.String)
 
 	{
 		if (obj instanceof AppendingStringBuffer)
 		{
 		}
 		else if (obj instanceof StringBuffer)
 		{
 			return append((StringBuffer)obj);
 		}
 		return append(String.valueOf(obj));
 	}

Appends the string to this string buffer.

The characters of the String argument are appended, in order, to the contents of this string buffer, increasing the length of this string buffer by the length of the argument. If str is null, then the four characters "null" are appended to this string buffer.

Let n be the length of the old character sequence, the one contained in the string buffer just prior to execution of the append method. Then the character at index k in the new character sequence is equal to the character at index k in the old character sequence, if k is less than n; otherwise, it is equal to the character at index k-n in the argument str.

Parameters:
str a string.
Returns:
a reference to this AppendingStringBuffer.
 
 	{
 		if (str == null)
 		{
 			str = String.valueOf(str);
 		}
 
 		int len = str.length();
 		int newcount =  + len;
 		if (newcount > .)
 		{
 			expandCapacity(newcount);
 		}
 		str.getChars(0, len);
 		 = newcount;
 		return this;
 	}

Appends the specified AppendingStringBuffer to this AppendingStringBuffer.

The characters of the AppendingStringBuffer argument are appended, in order, to the contents of this AppendingStringBuffer, increasing the length of this AppendingStringBuffer by the length of the argument. If sb is null, then the four characters "null" are appended to this AppendingStringBuffer.

Let n be the length of the old character sequence, the one contained in the AppendingStringBuffer just prior to execution of the append method. Then the character at index k in the new character sequence is equal to the character at index k in the old character sequence, if k is less than n; otherwise, it is equal to the character at index k-n in the argument sb.

The method ensureCapacity is first called on this AppendingStringBuffer with the new buffer length as its argument. (This ensures that the storage of this AppendingStringBuffer is adequate to contain the additional characters being appended.)

Parameters:
sb the AppendingStringBuffer to append.
Returns:
a reference to this AppendingStringBuffer.
Since:
1.4
 
 	{
 		if (sb == null)
 		{
 			sb = ;
 		}
 
 		int len = sb.length();
 		int newcount =  + len;
 		if (newcount > .)
 		{
 			expandCapacity(newcount);
 		}
 		sb.getChars(0, len);
 		 = newcount;
 		return this;
 	}

Appends the specified AppendingStringBuffer to this AppendingStringBuffer.

The characters of the AppendingStringBuffer argument are appended, in order, to the contents of this AppendingStringBuffer, increasing the length of this AppendingStringBuffer by the length of the argument. If sb is null, then the four characters "null" are appended to this AppendingStringBuffer.

Let n be the length of the old character sequence, the one contained in the AppendingStringBuffer just prior to execution of the append method. Then the character at index k in the new character sequence is equal to the character at index k in the old character sequence, if k is less than n; otherwise, it is equal to the character at index k-n in the argument sb.

The method ensureCapacity is first called on this AppendingStringBuffer with the new buffer length as its argument. (This ensures that the storage of this AppendingStringBuffer is adequate to contain the additional characters being appended.)

Parameters:
sb the AppendingStringBuffer to append.
Returns:
a reference to this AppendingStringBuffer.
Since:
1.4
 
 	{
 		if (sb == null)
 		{
 			sb = ;
 		}
 
 		int len = sb.length();
 		int newcount =  + len;
 		if (newcount > .)
 		{
 			expandCapacity(newcount);
 		}
 		sb.getChars(0, len);
 		 = newcount;
 		return this;
 	}


Appends the specified AppendingStringBuffer to this AppendingStringBuffer.

The characters of the AppendingStringBuffer argument are appended, in order, to the contents of this AppendingStringBuffer, increasing the length of this AppendingStringBuffer by the length of the argument. If sb is null, then the four characters "null" are appended to this AppendingStringBuffer.

Let n be the length of the old character sequence, the one contained in the AppendingStringBuffer just prior to execution of the append method. Then the character at index k in the new character sequence is equal to the character at index k in the old character sequence, if k is less than n; otherwise, it is equal to the character at index k-n in the argument sb.

The method ensureCapacity is first called on this AppendingStringBuffer with the new buffer length as its argument. (This ensures that the storage of this AppendingStringBuffer is adequate to contain the additional characters being appended.)

Parameters:
sb the AppendingStringBuffer to append.
from The index where it must start from
length The length that must be copied
Returns:
a reference to this AppendingStringBuffer.
 
 	public AppendingStringBuffer append(StringBuffer sbint fromint length)
 	{
 		if (sb == null)
 		{
 			sb = ;
 		}
 
 		int newcount =  + length;
 		if (newcount > .)
 		{
 			expandCapacity(newcount);
 		}
 		sb.getChars(fromlength);
 		 = newcount;
 		return this;
 	}

Appends the string representation of the char array argument to this string buffer.

The characters of the array argument are appended, in order, to the contents of this string buffer. The length of this string buffer increases by the length of the argument.

The overall effect is exactly as if the argument were converted to a string by the method java.lang.String.valueOf(char[]) and the characters of that string were then appended to this AppendingStringBuffer object.

Parameters:
str the characters to be appended.
Returns:
a reference to this AppendingStringBuffer object.
 
 	public AppendingStringBuffer append(char str[])
 	{
 		int len = str.length;
 		int newcount =  + len;
 		if (newcount > .)
 		{
 			expandCapacity(newcount);
 		}
 		System.arraycopy(str, 0, len);
 		 = newcount;
 		return this;
 	}

Appends the string representation of a subarray of the char array argument to this string buffer.

Characters of the character array str, starting at index offset, are appended, in order, to the contents of this string buffer. The length of this string buffer increases by the value of len.

The overall effect is exactly as if the arguments were converted to a string by the method java.lang.String.valueOf(char[],int,int) and the characters of that string were then appended to this AppendingStringBuffer object.

Parameters:
str the characters to be appended.
offset the index of the first character to append.
len the number of characters to append.
Returns:
a reference to this AppendingStringBuffer object.
 
 	public AppendingStringBuffer append(char str[], int offsetint len)
 	{
 		int newcount =  + len;
 		if (newcount > .)
 		{
 			expandCapacity(newcount);
 		}
 		System.arraycopy(stroffsetlen);
 		 = newcount;
 		return this;
 	}

Appends the string representation of the boolean argument to the string buffer.

The argument is converted to a string as if by the method String.valueOf, and the characters of that string are then appended to this string buffer.

Parameters:
b a boolean.
Returns:
a reference to this AppendingStringBuffer.
See also:
java.lang.String.valueOf(boolean)
java.lang.StringBuffer.append(java.lang.String)
 
 	public AppendingStringBuffer append(boolean b)
 	{
 		if (b)
 		{
 			int newcount =  + 4;
 			if (newcount > .)
 			{
 				expandCapacity(newcount);
 			}
 			[++] = 't';
 			[++] = 'r';
 			[++] = 'u';
 			[++] = 'e';
 		}
 		else
 		{
 			int newcount =  + 5;
 			if (newcount > .)
 			{
 				expandCapacity(newcount);
 			}
 			[++] = 'f';
 			[++] = 'a';
 			[++] = 'l';
 			[++] = 's';
 			[++] = 'e';
 		}
 		return this;
 	}

Appends the string representation of the char argument to this string buffer.

The argument is appended to the contents of this string buffer. The length of this string buffer increases by 1.

The overall effect is exactly as if the argument were converted to a string by the method java.lang.String.valueOf(char) and the character in that string were then appended to this AppendingStringBuffer object.

Parameters:
c a char.
Returns:
a reference to this AppendingStringBuffer object.
 
 	public AppendingStringBuffer append(char c)
 	{
 		int newcount =  + 1;
 		if (newcount > .)
 		{
 			expandCapacity(newcount);
 		}
 		[++] = c;
 		return this;
 	}

Appends the string representation of the int argument to this string buffer.

The argument is converted to a string as if by the method String.valueOf, and the characters of that string are then appended to this string buffer.

Parameters:
i an int.
Returns:
a reference to this AppendingStringBuffer object.
See also:
java.lang.String.valueOf(int)
java.lang.StringBuffer.append(java.lang.String)
 
 	public AppendingStringBuffer append(int i)
 	{
 		return append(String.valueOf(i));
 	}

Appends the string representation of the long argument to this string buffer.

The argument is converted to a string as if by the method String.valueOf, and the characters of that string are then appended to this string buffer.

Parameters:
l a long.
Returns:
a reference to this AppendingStringBuffer object.
See also:
java.lang.String.valueOf(long)
java.lang.StringBuffer.append(java.lang.String)
 
 	public AppendingStringBuffer append(long l)
 	{
 		return append(String.valueOf(l));
 	}

Appends the string representation of the float argument to this string buffer.

The argument is converted to a string as if by the method String.valueOf, and the characters of that string are then appended to this string buffer.

Parameters:
f a float.
Returns:
a reference to this AppendingStringBuffer object.
See also:
java.lang.String.valueOf(float)
java.lang.StringBuffer.append(java.lang.String)
 
 	public AppendingStringBuffer append(float f)
 	{
 		return append(String.valueOf(f));
 	}

Appends the string representation of the double argument to this string buffer.

The argument is converted to a string as if by the method String.valueOf, and the characters of that string are then appended to this string buffer.

Parameters:
d a double.
Returns:
a reference to this AppendingStringBuffer object.
See also:
java.lang.String.valueOf(double)
java.lang.StringBuffer.append(java.lang.String)
 
 	public AppendingStringBuffer append(double d)
 	{
 		return append(String.valueOf(d));
 	}

Removes the characters in a substring of this AppendingStringBuffer. The substring begins at the specified start and extends to the character at index end - 1 or to the end of the AppendingStringBuffer if no such character exists. If start is equal to end, no changes are made.

Parameters:
start The beginning index, inclusive.
end The ending index, exclusive.
Returns:
This string buffer.
Throws:
java.lang.StringIndexOutOfBoundsException if start is negative, greater than length(), or greater than end.
Since:
1.2
 
 	public AppendingStringBuffer delete(int startint end)
 	{
 		if (start < 0)
 		{
 			throw new StringIndexOutOfBoundsException(start);
 		}
 		if (end > )
 		{
 			end = ;
 		}
 		if (start > end)
 		{
 		}
 
 		int len = end - start;
 		if (len > 0)
 		{
 			System.arraycopy(start + lenstart - end);
 			 -= len;
 		}
 		return this;
 	}

Removes the character at the specified position in this AppendingStringBuffer (shortening the AppendingStringBuffer by one character).

Parameters:
index Index of character to remove
Returns:
This string buffer.
Throws:
java.lang.StringIndexOutOfBoundsException if the index is negative or greater than or equal to length().
Since:
1.2
 
 	public AppendingStringBuffer deleteCharAt(int index)
 	{
 		if ((index < 0) || (index >= ))
 		{
 		}
 		System.arraycopy(index + 1, index - index - 1);
 		--;
 		return this;
 	}

Replaces the characters in a substring of this AppendingStringBuffer with characters in the specified String. The substring begins at the specified start and extends to the character at index end - 1 or to the end of the AppendingStringBuffer if no such character exists. First the characters in the substring are removed and then the specified String is inserted at start. (The AppendingStringBuffer will be lengthened to accommodate the specified String if necessary.)

Parameters:
start The beginning index, inclusive.
end The ending index, exclusive.
str String that will replace previous contents.
Returns:
This string buffer.
Throws:
java.lang.StringIndexOutOfBoundsException if start is negative, greater than length(), or greater than end.
Since:
1.2
 
 	public AppendingStringBuffer replace(int startint endString str)
 	{
 		if (start < 0)
 		{
 			throw new StringIndexOutOfBoundsException(start);
 		}
 		if (end > )
 		{
 			end = ;
 		}
 		if (start > end)
 		{
 		}
 
 		int len = str.length();
 		int newCount =  + len - (end - start);
 		if (newCount > .)
 		{
 			expandCapacity(newCount);
 		}
 
 		System.arraycopy(endstart + len - end);
 		str.getChars(0, lenstart);
 		 = newCount;
 		return this;
 	}

Returns a new String that contains a subsequence of characters currently contained in this AppendingStringBuffer.The substring begins at the specified index and extends to the end of the AppendingStringBuffer.

Parameters:
start The beginning index, inclusive.
Returns:
The new string.
Throws:
java.lang.StringIndexOutOfBoundsException if start is less than zero, or greater than the length of this AppendingStringBuffer.
Since:
1.2
 
 	public String substring(int start)
 	{
 		return substring(start);
 	}

Returns a new character sequence that is a subsequence of this sequence.

An invocation of this method of the form

 sb.subSequence(begin, end)
 
behaves in exactly the same way as the invocation
 sb.substring(begin, end)
 
This method is provided so that the AppendingStringBuffer class can implement the java.lang.CharSequence interface.

Parameters:
start the start index, inclusive.
end the end index, exclusive.
Returns:
the specified subsequence.
Throws:
java.lang.IndexOutOfBoundsException if start or end are negative, if end is greater than length(), or if start is greater than end
Since:
1.4
Spec:
JSR-51
 
 	public CharSequence subSequence(int startint end)
 	{
 		return this.substring(startend);
 	}

Returns a new String that contains a subsequence of characters currently contained in this AppendingStringBuffer. The substring begins at the specified start and extends to the character at index end - 1. An exception is thrown if

Parameters:
start The beginning index, inclusive.
end The ending index, exclusive.
Returns:
The new string.
Throws:
java.lang.StringIndexOutOfBoundsException if start or end are negative or greater than length(), or start is greater than end.
Since:
1.2
 
 	public String substring(int startint end)
 	{
 		if (start < 0)
 		{
 			throw new StringIndexOutOfBoundsException(start);
 		}
 		if (end > )
 		{
 		}
 		if (start > end)
 		{
 			throw new StringIndexOutOfBoundsException(end - start);
 		}
 		return new String(startend - start);
 	}

Inserts the string representation of a subarray of the str array argument into this string buffer. The subarray begins at the specified offset and extends len characters. The characters of the subarray are inserted into this string buffer at the position indicated by index. The length of this AppendingStringBuffer increases by len characters.

Parameters:
index position at which to insert subarray.
str A character array.
offset the index of the first character in subarray to to be inserted.
len the number of characters in the subarray to to be inserted.
Returns:
This string buffer.
Throws:
java.lang.StringIndexOutOfBoundsException if index is negative or greater than length(), or offset or len are negative, or (offset+len) is greater than str.length.
Since:
1.2
 
 	public AppendingStringBuffer insert(int indexchar str[], int offsetint len)
 	{
 		if ((index < 0) || (index > ))
 		{
 		}
 		if ((offset < 0) || (offset + len < 0) || (offset + len > str.length))
 		{
 			throw new StringIndexOutOfBoundsException(offset);
 		}
 		if (len < 0)
 		{
 		}
 		int newCount =  + len;
 		if (newCount > .)
 		{
 			expandCapacity(newCount);
 		}
 		System.arraycopy(indexindex + len - index);
 		System.arraycopy(stroffsetindexlen);
 		 = newCount;
 		return this;
 	}

Inserts the string representation of the Object argument into this string buffer.

The second argument is converted to a string as if by the method String.valueOf, and the characters of that string are then inserted into this string buffer at the indicated offset.

The offset argument must be greater than or equal to 0, and less than or equal to the length of this string buffer.

Parameters:
offset the offset.
obj an Object.
Returns:
a reference to this AppendingStringBuffer object.
Throws:
java.lang.StringIndexOutOfBoundsException if the offset is invalid.
See also:
java.lang.String.valueOf(java.lang.Object)
insert(int,java.lang.String)
length()
 
 	public AppendingStringBuffer insert(int offsetObject obj)
 	{
 		if (obj instanceof AppendingStringBuffer)
 		{
 			return insert(offsetasb.value, 0, asb.count);
 		}
 		else if (obj instanceof StringBuffer)
			return insert(offset, (StringBuffer)obj);
		return insert(offset, String.valueOf(obj));
	}

Inserts the string into this string buffer.

The characters of the String argument are inserted, in order, into this string buffer at the indicated offset, moving up any characters originally above that position and increasing the length of this string buffer by the length of the argument. If str is null, then the four characters "null" are inserted into this string buffer.

The character at index k in the new character sequence is equal to:

  • the character at index k in the old character sequence, if k is less than offset
  • the character at index k-offset in the argument str, if k is not less than offset but is less than offset+str.length()
  • the character at index k-str.length() in the old character sequence, if k is not less than offset+str.length()

The offset argument must be greater than or equal to 0, and less than or equal to the length of this string buffer.

Parameters:
offset the offset.
str a string.
Returns:
a reference to this AppendingStringBuffer object.
Throws:
java.lang.StringIndexOutOfBoundsException if the offset is invalid.
See also:
java.lang.StringBuffer.length()
	public AppendingStringBuffer insert(int offsetString str)
		if ((offset < 0) || (offset > ))
		if (str == null)
			str = String.valueOf(str);
		int len = str.length();
		int newcount =  + len;
		if (newcount > .)
			expandCapacity(newcount);
		System.arraycopy(offsetoffset + len - offset);
		str.getChars(0, lenoffset);
		 = newcount;
		return this;
	}

Inserts the string into this string buffer.

The characters of the String argument are inserted, in order, into this string buffer at the indicated offset, moving up any characters originally above that position and increasing the length of this string buffer by the length of the argument. If str is null, then the four characters "null" are inserted into this string buffer.

The character at index k in the new character sequence is equal to:

  • the character at index k in the old character sequence, if k is less than offset
  • the character at index k-offset in the argument str, if k is not less than offset but is less than offset+str.length()
  • the character at index k-str.length() in the old character sequence, if k is not less than offset+str.length()

The offset argument must be greater than or equal to 0, and less than or equal to the length of this string buffer.

Parameters:
offset the offset.
str a string.
Returns:
a reference to this AppendingStringBuffer object.
Throws:
java.lang.StringIndexOutOfBoundsException if the offset is invalid.
See also:
java.lang.StringBuffer.length()
	public AppendingStringBuffer insert(int offsetStringBuffer str)
		if ((offset < 0) || (offset > ))
		if (str == null)
			str = ;
		int len = str.length();
		int newcount =  + len;
		if (newcount > .)
			expandCapacity(newcount);
		System.arraycopy(offsetoffset + len - offset);
		str.getChars(0, lenoffset);
		 = newcount;
		return this;
	}

Inserts the string representation of the char array argument into this string buffer.

The characters of the array argument are inserted into the contents of this string buffer at the position indicated by offset. The length of this string buffer increases by the length of the argument.

The overall effect is exactly as if the argument were converted to a string by the method java.lang.String.valueOf(char[]) and the characters of that string were then inserted into this AppendingStringBuffer object at the position indicated by offset.

Parameters:
offset the offset.
str a character array.
Returns:
a reference to this AppendingStringBuffer object.
Throws:
java.lang.StringIndexOutOfBoundsException if the offset is invalid.
	public AppendingStringBuffer insert(int offsetchar str[])
		if ((offset < 0) || (offset > ))
		int len = str.length;
		int newcount =  + len;
		if (newcount > .)
			expandCapacity(newcount);
		System.arraycopy(offsetoffset + len - offset);
		System.arraycopy(str, 0, offsetlen);
		 = newcount;
		return this;
	}

Inserts the string representation of the boolean argument into this string buffer.

The second argument is converted to a string as if by the method String.valueOf, and the characters of that string are then inserted into this string buffer at the indicated offset.

The offset argument must be greater than or equal to 0, and less than or equal to the length of this string buffer.

Parameters:
offset the offset.
b a boolean.
Returns:
a reference to this AppendingStringBuffer object.
Throws:
java.lang.StringIndexOutOfBoundsException if the offset is invalid.
See also:
java.lang.String.valueOf(boolean)
java.lang.StringBuffer.insert(int,java.lang.String)
java.lang.StringBuffer.length()
	public AppendingStringBuffer insert(int offsetboolean b)
		return insert(offset, String.valueOf(b));
	}

Inserts the string representation of the char argument into this string buffer.

The second argument is inserted into the contents of this string buffer at the position indicated by offset. The length of this string buffer increases by one.

The overall effect is exactly as if the argument were converted to a string by the method java.lang.String.valueOf(char) and the character in that string were then inserted into this AppendingStringBuffer object at the position indicated by offset.

The offset argument must be greater than or equal to 0, and less than or equal to the length of this string buffer.

Parameters:
offset the offset.
c a char.
Returns:
a reference to this AppendingStringBuffer object.
Throws:
java.lang.IndexOutOfBoundsException if the offset is invalid.
See also:
java.lang.StringBuffer.length()
	public AppendingStringBuffer insert(int offsetchar c)
		int newcount =  + 1;
		if (newcount > .)
			expandCapacity(newcount);
		System.arraycopy(offsetoffset + 1,  - offset);
		[offset] = c;
		 = newcount;
		return this;
	}

Inserts the string representation of the second int argument into this string buffer.

The second argument is converted to a string as if by the method String.valueOf, and the characters of that string are then inserted into this string buffer at the indicated offset.

The offset argument must be greater than or equal to 0, and less than or equal to the length of this string buffer.

Parameters:
offset the offset.
i an int.
Returns:
a reference to this AppendingStringBuffer object.
Throws:
java.lang.StringIndexOutOfBoundsException if the offset is invalid.
See also:
java.lang.String.valueOf(int)
java.lang.StringBuffer.insert(int,java.lang.String)
java.lang.StringBuffer.length()
	public AppendingStringBuffer insert(int offsetint i)
		return insert(offset, String.valueOf(i));
	}

Inserts the string representation of the long argument into this string buffer.

The second argument is converted to a string as if by the method String.valueOf, and the characters of that string are then inserted into this string buffer at the position indicated by offset.

The offset argument must be greater than or equal to 0, and less than or equal to the length of this string buffer.

Parameters:
offset the offset.
l a long.
Returns:
a reference to this AppendingStringBuffer object.
Throws:
java.lang.StringIndexOutOfBoundsException if the offset is invalid.
See also:
java.lang.String.valueOf(long)
java.lang.StringBuffer.insert(int,java.lang.String)
java.lang.StringBuffer.length()
	public AppendingStringBuffer insert(int offsetlong l)
		return insert(offset, String.valueOf(l));
	}

Inserts the string representation of the float argument into this string buffer.

The second argument is converted to a string as if by the method String.valueOf, and the characters of that string are then inserted into this string buffer at the indicated offset.

The offset argument must be greater than or equal to 0, and less than or equal to the length of this string buffer.

Parameters:
offset the offset.
f a float.
Returns:
a reference to this AppendingStringBuffer object.
Throws:
java.lang.StringIndexOutOfBoundsException if the offset is invalid.
See also:
java.lang.String.valueOf(float)
java.lang.StringBuffer.insert(int,java.lang.String)
java.lang.StringBuffer.length()
	public AppendingStringBuffer insert(int offsetfloat f)
		return insert(offset, String.valueOf(f));
	}

Inserts the string representation of the double argument into this string buffer.

The second argument is converted to a string as if by the method String.valueOf, and the characters of that string are then inserted into this string buffer at the indicated offset.

The offset argument must be greater than or equal to 0, and less than or equal to the length of this string buffer.

Parameters:
offset the offset.
d a double.
Returns:
a reference to this AppendingStringBuffer object.
Throws:
java.lang.StringIndexOutOfBoundsException if the offset is invalid.
See also:
java.lang.String.valueOf(double)
java.lang.StringBuffer.insert(int,java.lang.String)
java.lang.StringBuffer.length()
	public AppendingStringBuffer insert(int offsetdouble d)
		return insert(offset, String.valueOf(d));
	}

Returns the index within this string of the first occurrence of the specified substring. The integer returned is the smallest value k such that:
       this.toString().startsWith(str, <i>k</i>)
 
is true.

Parameters:
str any string.
Returns:
if the string argument occurs as a substring within this object, then the index of the first character of the first such substring is returned; if it does not occur as a substring, -1 is returned.
Throws:
java.lang.NullPointerException if str is null.
Since:
1.4
	public int indexOf(String str)
		return indexOf(str, 0);
	}

Returns the index within this string of the first occurrence of the specified substring, starting at the specified index. The integer returned is the smallest value k for which:
 k >= Math.min(fromIndex, str.length()) && this.toString().startsWith(str, k)
 
If no such value of k exists, then -1 is returned.

Parameters:
str the substring for which to search.
fromIndex the index from which to start the search.
Returns:
the index within this string of the first occurrence of the specified substring, starting at the specified index.
Throws:
java.lang.NullPointerException if str is null.
Since:
1.4
	public int indexOf(String strint fromIndex)
		return indexOf(, 0, str.toCharArray(), 0, str.length(), fromIndex);
	static int indexOf(char[] sourceint sourceOffsetint sourceCountchar[] target,
			int targetOffsetint targetCountint fromIndex)
		if (fromIndex >= sourceCount)
			return (targetCount == 0 ? sourceCount : -1);
		if (fromIndex < 0)
			fromIndex = 0;
		if (targetCount == 0)
			return fromIndex;
		char first = target[targetOffset];
		int i = sourceOffset + fromIndex;
		int max = sourceOffset + (sourceCount - targetCount);
		startSearchForFirstChar : while (true)
			/* Look for first character. */
			while (i <= max && source[i] != first)
				i++;
			if (i > max)
				return -1;
			/* Found first character, now look at the rest of v2 */
			int j = i + 1;
			int end = j + targetCount - 1;
			int k = targetOffset + 1;
			while (j < end)
				if (source[j++] != target[k++])
					i++;
					/* Look for str's first char again. */
					continue startSearchForFirstChar;
			return i - sourceOffset/* Found whole string. */
	}

Returns the index within this string of the rightmost occurrence of the specified substring. The rightmost empty string "" is considered to occur at the index value this.length(). The returned index is the largest value k such that
 this.toString().startsWith(str, k)
 
is true.

Parameters:
str the substring to search for.
Returns:
if the string argument occurs one or more times as a substring within this object, then the index of the first character of the last such substring is returned. If it does not occur as a substring, -1 is returned.
Throws:
java.lang.NullPointerException if str is null.
Since:
1.4
	public int lastIndexOf(String str)
		return lastIndexOf(str);
	}

Returns the index within this string of the last occurrence of the specified substring. The integer returned is the largest value k such that:
 k <= Math.min(fromIndex, str.length()) && this.toString().startsWith(str, k)
 
If no such value of k exists, then -1 is returned.

Parameters:
str the substring to search for.
fromIndex the index to start the search from.
Returns:
the index within this string of the last occurrence of the specified substring.
Throws:
java.lang.NullPointerException if str is null.
Since:
1.4
	public int lastIndexOf(String strint fromIndex)
		return lastIndexOf(, 0, str.toCharArray(), 0, str.length(), fromIndex);
	static int lastIndexOf(char[] sourceint sourceOffsetint sourceCountchar[] target,
			int targetOffsetint targetCountint fromIndex)
		/*
		 * Check arguments; return immediately where possible. For consistency, don't check for null
		 * str.
		 */
		int rightIndex = sourceCount - targetCount;
		if (fromIndex < 0)
			return -1;
		if (fromIndex > rightIndex)
			fromIndex = rightIndex;
		/* Empty string always matches. */
		if (targetCount == 0)
			return fromIndex;
		int strLastIndex = targetOffset + targetCount - 1;
		char strLastChar = target[strLastIndex];
		int min = sourceOffset + targetCount - 1;
		int i = min + fromIndex;
		startSearchForLastChar : while (true)
			while (i >= min && source[i] != strLastChar)
				i--;
			if (i < min)
				return -1;
			int j = i - 1;
			int start = j - (targetCount - 1);
			int k = strLastIndex - 1;
			while (j > start)
				if (source[j--] != target[k--])
					i--;
					continue startSearchForLastChar;
			return start - sourceOffset + 1;
	}

Tests if this AppendingStringBuffer starts with the specified prefix beginning a specified index.

Parameters:
prefix the prefix.
toffset where to begin looking in the string.
Returns:
true if the character sequence represented by the argument is a prefix of the substring of this object starting at index toffset; false otherwise. The result is false if toffset is negative or greater than the length of this String object; otherwise the result is the same as the result of the expression
 this.subString(toffset).startsWith(prefix)
 
	public boolean startsWith(CharSequence prefixint toffset)
		char ta[] = ;
		int to = toffset;
		int po = 0;
		int pc = prefix.length();
		// Note: toffset might be near -1>>>1.
		if ((toffset < 0) || (toffset >  - pc))
			return false;
		while (--pc >= 0)
			if (ta[to++] != prefix.charAt(po++))
				return false;
		return true;
	}

Tests if this AppendingStringBuffer starts with the specified prefix.

Parameters:
prefix the prefix.
Returns:
true if the character sequence represented by the argument is a prefix of the character sequence represented by this AppendingStringBuffer; false otherwise. Note also that true will be returned if the argument is an empty string or is equal to this AppendingStringBuffer object as determined by the equals(java.lang.Object) method.
Since:
1. 0
	public boolean startsWith(CharSequence prefix)
		return startsWith(prefix, 0);
	}

Tests if this AppendingStringBuffer ends with the specified suffix.

Parameters:
suffix the suffix.
Returns:
true if the character sequence represented by the argument is a suffix of the character sequence represented by this AppendingStringBuffer; false otherwise. Note that the result will be true if the argument is the empty string or is equal to this AppendingStringBuffer object as determined by the equals(java.lang.Object) method.
	public boolean endsWith(CharSequence suffix)
		return startsWith(suffix - suffix.length());
	}

Converts to a string representing the data in this AppendingStringBuffer. A new String object is allocated and initialized to contain the character sequence currently represented by this string buffer. This String is then returned. Subsequent changes to the string buffer do not affect the contents of the String.

Implementation advice: This method can be coded so as to create a new String object without allocating new memory to hold a copy of the character sequence. Instead, the string can share the memory used by the string buffer. Any subsequent operation that alters the content or capacity of the string buffer must then make a copy of the internal buffer at that time. This strategy is effective for reducing the amount of memory allocated by a string concatenation operation when it is implemented using a string buffer.

Returns:
a string representation of the string buffer.
	public String toString()
		return new String(this., 0, );
	}

This method returns the internal char array. So it is not

Returns:
The internal char array
	public final char[] getValue()
		return ;
	}


readObject is called to restore the state of the AppendingStringBuffer from a stream.

		 = (char[]).clone();
	}

Compares this AppendingStringBuffer to the specified object. The result is true if and only if the argument is not null and is a AppendingStringBuffer object or another charsequence object! that represents the same sequence of characters as this object.

Parameters:
anObject the object to compare this AppendingStringBuffer against.
Returns:
true if the AppendingStringBufferare equal; false otherwise.
	public boolean equals(Object anObject)
		if (this == anObject)
			return true;
		if (anObject instanceof AppendingStringBuffer)
			AppendingStringBuffer anotherString = (AppendingStringBuffer)anObject;
			int n = ;
			if (n == anotherString.count)
				char v1[] = ;
				char v2[] = anotherString.value;
				int i = 0;
				while (n-- != 0)
					if (v1[i] != v2[i++])
						return false;
				return true;
		else if (anObject instanceof CharSequence)
			CharSequence sequence = (CharSequence)anObject;
			int n = ;
			if (sequence.length() == )
				char v1[] = ;
				int i = 0;
				while (n-- != 0)
					if (v1[i] != sequence.charAt(i++))
						return false;
				return true;
		return false;
	}

Returns a hash code for this AppendingStringBuffer. The hash code for a AppendingStringBuffer object is computed as
    s[0]*31ˆ(n-1) + s[1]*31ˆ(n-2) + ... + s[n-1]
 
using int arithmetic, where s[i] is the ith character of the AppendingStringBuffer, n is the length of the AppendingStringBuffer, and ^ indicates exponentiation. (The hash value of the empty AppendingStringBuffer is zero.)

Returns:
a hash code value for this object.
	public int hashCode()
		int h = 0;
		if (h == 0)
			int off = 0;
			char val[] = ;
			int len = ;
			for (int i = 0; i < leni++)
				h = 31 * h + val[off++];
		return h;
	}

Clears the buffer contents, but leaves the allocated size intact
	public void clear()
		 = 0;
New to GrepCode? Check out our FAQ X