Package org.apache.sis.util
Class StringBuilders
-
public final class StringBuilders extends Static
Static methods working onStringBuilderinstances. Some methods defined in this class duplicate the functionalities provided in theCharSequencesclass, but modify directly the content of the providedStringBuilderinstead than creating new objects.Unicode supportEvery methods defined in this class work on code points instead than characters when appropriate. Consequently those methods should behave correctly with characters outside the Basic Multilingual Plane (BMP).- Since:
- 0.3
- See Also:
CharSequences
Defined in the
sis-utilitymodule
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidremove(StringBuilder buffer, String toSearch)Removes every occurrences of the given string in the given buffer.static voidrepeat(StringBuilder buffer, char c, int count)Appends the given character n times.static voidrepeat(StringBuilder buffer, int offset, char c, int count)Inserts the given character n times at the given position.static voidreplace(StringBuilder buffer, char toSearch, char replaceBy)Replaces every occurrences of the given character in the given buffer.static voidreplace(StringBuilder buffer, int start, int end, char[] chars)Replaces the characters in a substring of the buffer with characters in the specified array.static voidreplace(StringBuilder buffer, String toSearch, String replaceBy)Replaces every occurrences of the given string in the given buffer.static voidtoASCII(StringBuilder buffer)Replaces some Unicode characters by ASCII characters on a "best effort basis".static voidtrimFractionalPart(StringBuilder buffer)Trims the fractional part of the given formatted number, provided that it doesn't change the value.
-
-
-
Method Detail
-
replace
public static void replace(StringBuilder buffer, char toSearch, char replaceBy)
Replaces every occurrences of the given character in the given buffer.- Parameters:
buffer- the string in which to perform the replacements.toSearch- the character to replace.replaceBy- the replacement for the searched character.- Throws:
NullArgumentException- if thebufferarguments is null.- See Also:
String.replace(char, char)
-
replace
public static void replace(StringBuilder buffer, String toSearch, String replaceBy)
Replaces every occurrences of the given string in the given buffer. This method invokesStringBuilder.replace(int, int, String)for each occurrence ofsearchfound in the buffer.- Parameters:
buffer- the string in which to perform the replacements.toSearch- the string to replace.replaceBy- the replacement for the searched string.- Throws:
NullArgumentException- if any of the arguments is null.IllegalArgumentException- if thetoSearchargument is empty.- See Also:
String.replace(char, char),CharSequences.replace(CharSequence, CharSequence, CharSequence),StringBuilder.replace(int, int, String)
-
replace
public static void replace(StringBuilder buffer, int start, int end, char[] chars)
Replaces the characters in a substring of the buffer with characters in the specified array. The substring to be replaced begins at the specifiedstartand extends to the character at indexend - 1.- Parameters:
buffer- the buffer in which to perform the replacement.start- the beginning index in thebuffer, inclusive.end- the ending index in thebuffer, exclusive.chars- the array that will replace previous contents.- Throws:
NullArgumentException- if thebufferorcharsargument is null.- See Also:
StringBuilder.replace(int, int, String)
-
remove
public static void remove(StringBuilder buffer, String toSearch)
Removes every occurrences of the given string in the given buffer. This method invokesStringBuilder.delete(int, int)for each occurrence ofsearchfound in the buffer.- Parameters:
buffer- the string in which to perform the removals.toSearch- the string to remove.- Throws:
NullPointerException- if any of the arguments is null.IllegalArgumentException- if thetoSearchargument is empty.- See Also:
StringBuilder.delete(int, int)
-
repeat
public static void repeat(StringBuilder buffer, char c, int count)
Appends the given character n times. This method does nothing if the givencountis zero.- Parameters:
buffer- the buffer where to append the character.c- the character to repeat.count- number of times to repeat the given character.- Throws:
NullPointerException- if the given buffer is null.IllegalArgumentException- if the given count is negative.- Since:
- 1.0
-
repeat
public static void repeat(StringBuilder buffer, int offset, char c, int count)
Inserts the given character n times at the given position. This method does nothing if the givencountis zero.- Parameters:
buffer- the buffer where to insert the character.offset- position where to insert the characters.c- the character to repeat.count- number of times to repeat the given character.- Throws:
NullPointerException- if the given buffer is null.IndexOutOfBoundsException- if the given index is invalid.IllegalArgumentException- if the given count is negative.- Since:
- 0.8
-
trimFractionalPart
public static void trimFractionalPart(StringBuilder buffer)
Trims the fractional part of the given formatted number, provided that it doesn't change the value. This method assumes that the number is formatted in the US locale, typically by theDouble.toString(double)method.More specifically if the given buffer ends with a
'.'character followed by a sequence of'0'characters, then those characters are removed. Otherwise this method does nothing. This is a "all or nothing" method: either the fractional part is completely removed, or either it is left unchanged.Use caseThis method is useful after a double value has been appended to the buffer, in order to make it appears like an integer when possible.- Parameters:
buffer- the buffer to trim if possible.- Throws:
NullArgumentException- if the givenbufferis null.- See Also:
CharSequences.trimFractionalPart(CharSequence)
-
toASCII
public static void toASCII(StringBuilder buffer)
Replaces some Unicode characters by ASCII characters on a "best effort basis". For example the “ é ” character is replaced by “ e ” (without accent), the “ ″ ” symbol for minutes of angle is replaced by straight double quotes “ " ”, and combined characters like ㎏, ㎎, ㎝, ㎞, ㎢, ㎦, ㎖, ㎧, ㎩, ㎐, etc. are replaced by the corresponding sequences of characters.- Parameters:
buffer- the text to scan for Unicode characters to replace by ASCII characters.- Throws:
NullArgumentException- if the givenbufferis null.- See Also:
CharSequences.toASCII(CharSequence),Normalizer.normalize(CharSequence, Normalizer.Form)
-
-