Class StringBuilders

java.lang.Object
org.apache.sis.util.Static
org.apache.sis.util.StringBuilders

public final class StringBuilders extends Static
Static methods working on StringBuilder instances. Some methods defined in this class duplicate the functionalities provided in the CharSequences class, but modify directly the content of the provided StringBuilder instead of creating new objects.

Unicode support

Every methods defined in this class work on code points instead of characters when appropriate. Consequently, those methods should behave correctly with characters outside the Basic Multilingual Plane (BMP).
Since:
0.3
Version:
1.0
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    private static final class 
    A sequence of a constant character.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final String
    Letters in the range 00C0 (192) to 00FF (255) inclusive with their accent removed, when possible.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
    Do not allow instantiation of this class.
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    remove(StringBuilder buffer, String toSearch)
    Removes every occurrences of the given string in the given buffer.
    static void
    repeat(StringBuilder buffer, char c, int count)
    Appends the given character n times.
    static void
    repeat(StringBuilder buffer, int offset, char c, int count)
    Inserts the given character n times at the given position.
    static void
    replace(StringBuilder buffer, char toSearch, char replaceBy)
    Replaces every occurrences of the given character in the given buffer.
    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.
    static void
    replace(StringBuilder buffer, String toSearch, String replaceBy)
    Replaces every occurrences of the given string in the given buffer.
    (package private) static CharSequence
    Implementation of the public toASCII methods.
    static void
    Replaces some Unicode characters by ASCII characters on a "best effort basis".
    static void
    Trims the fractional part of the given formatted number, provided that it doesn't change the value.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • ASCII

      private static final String ASCII
      Letters in the range 00C0 (192) to 00FF (255) inclusive with their accent removed, when possible. This string partially duplicates the work done by Normalizer with additional replacements. We use it for more direct character replacements (compared to using Normalizer than removing combining marks) for those common and easy cases.
      See Also:
  • Constructor Details

    • StringBuilders

      private StringBuilders()
      Do not allow instantiation of this class.
  • Method Details

    • 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 the buffer arguments is null.
      See Also:
    • replace

      public static void replace(StringBuilder buffer, String toSearch, String replaceBy)
      Replaces every occurrences of the given string in the given buffer. This method invokes StringBuilder.replace(int, int, String) for each occurrence of search found 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 the toSearch argument is empty.
      See Also:
    • 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 specified start and extends to the character at index end - 1.
      Parameters:
      buffer - the buffer in which to perform the replacement.
      start - the beginning index in the buffer, inclusive.
      end - the ending index in the buffer, exclusive.
      chars - the array that will replace previous contents.
      Throws:
      NullArgumentException - if the buffer or chars argument is null.
      See Also:
    • remove

      public static void remove(StringBuilder buffer, String toSearch)
      Removes every occurrences of the given string in the given buffer. This method invokes StringBuilder.delete(int, int) for each occurrence of search found 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 the toSearch argument is empty.
      See Also:
    • repeat

      public static void repeat(StringBuilder buffer, char c, int count)
      Appends the given character n times. This method does nothing if the given count is 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 given count is 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 the Double.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 case

      This 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 given buffer is null.
      See Also:
    • 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 given buffer is null.
      See Also:
    • toASCII

      static CharSequence toASCII(CharSequence text, StringBuilder buffer)
      Implementation of the public toASCII methods.