com.pixelmed.utils

## Class StringUtilities

- java.lang.Object
- - com.pixelmed.utils.StringUtilities

    public class StringUtilities
    extends java.lang.Object

Various static methods helpful for comparing and manipulating strings.

### Method Summary

Methods
`static int` `compareStringsThatMayBeIntegers(java.lang.String s1, java.lang.String s2)` Compare strings based on their integer value of they are both integers, otherwise their lexicographic order.
`static int` `compareStringsWithEmbeddedNonZeroPaddedIntegers(java.lang.String s1, java.lang.String s2)` Compare strings based on the lexicographic order of their values, but accounting for non-zero padded integers.
`static boolean` `contains(java.lang.String string, java.lang.String[] substrings)` Does a string contain any one of an array of strings ?
`static boolean` `containsRegardlessOfCase(java.lang.String string, java.lang.String[] substrings)` Does a string contain any one of an array of strings regardless of case ?
`static java.lang.String` `dump(char[] chars)` Create a dump of the decimal offset, hexadecimal values and printable string values of an array of char.
`static java.lang.String` `dump(java.lang.String s)` Create a dump of the decimal offset, hexadecimal values and printable string values of a String.
`static java.util.Vector` `getDelimitedValues(java.lang.String string, java.lang.String delimiter)` Get delimited values from a string.
`static void` `main(java.lang.String[] arg)` Unit testing.
`static java.lang.String` `removeLeadingCharacter(java.lang.String src, char rmchar)` Remove any leading instances of a particular character from a string.
`static java.lang.String` `removeLeadingOrTrailingWhitespaceOrISOControl(java.lang.String src)` Remove any leading or trailing padding from a string.
`static java.lang.String` `removeLeadingSpaces(java.lang.String src)` Remove any leading spaces from a string.
`static java.lang.String` `removeLeadingWhitespaceOrISOControl(java.lang.String src)` Remove any leading instances of whitespace or control characters from a string.
`static java.lang.String` `removeTrailingCharacter(java.lang.String src, char rmchar)` Remove any trailing instances of a particular character from a string.
`static java.lang.String` `removeTrailingSpaces(java.lang.String src)` Remove any trailing spaces from a string.
`static java.lang.String` `removeTrailingWhitespaceOrISOControl(java.lang.String src)` Remove any trailing instances of whitespace or control characters from a string.
`static java.lang.String` `replaceAllInWith(java.lang.String string, java.lang.String oldChars, java.lang.String newChars)` Replace all listed characters in a string with those listed as replacements.
`static java.lang.String` `toString(double[] doubleArray)`
`static java.lang.String` `toString(java.lang.String[] stringArray)`
`static java.lang.String` `toString(java.lang.String[][] stringArrays)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### replaceAllInWith

    public static final java.lang.String replaceAllInWith(java.lang.String string,
                                    java.lang.String oldChars,
                                    java.lang.String newChars)

Replace all listed characters in a string with those listed as replacements.

If newchars is null or shorter than oldchars, the character will be deleted.

Parameters:
  `string` - the String to replace characters within
  `oldChars` - a String containing characters to be replaced
  `newChars` - a String containing corresponding characters to use as replacements (may be null)
Returns:
  a String with the characters replaced

#### contains

    public static final boolean contains(java.lang.String string,
                   java.lang.String[] substrings)

Does a string contain any one of an array of strings ?

Parameters:
  `string` - the string to test
  `substrings` - an array of strings to look for within string
Returns:
  true if any string in substrings is found within string

#### containsRegardlessOfCase

    public static final boolean containsRegardlessOfCase(java.lang.String string,
                                   java.lang.String[] substrings)

Does a string contain any one of an array of strings regardless of case ?

Parameters:
  `string` - the string to test
  `substrings` - an array of strings to look for within string
Returns:
  true if any string in substrings is found within string

#### getDelimitedValues

    public static final java.util.Vector getDelimitedValues(java.lang.String string,
                                      java.lang.String delimiter)

Get delimited values from a string.

Consecutive delimiters result in an empty (zero length not null) string value.

Hence always returns a Vector one longer than the number of delimiters present.

Parameters:
  `string` - the string containing the delimited values
  `delimiter` - the delimiter
Returns:
  a Vector of String values

#### removeTrailingCharacter

    public static final java.lang.String removeTrailingCharacter(java.lang.String src,
                                           char rmchar)

Remove any trailing instances of a particular character from a string.

Parameters:
  `src` - the string that may have trailing characters
  `rmchar` - the character, all trailing instances of which are to be removed
Returns:
  the value of the string argument with any instances of the trailing character removed

#### removeTrailingWhitespaceOrISOControl

    public static final java.lang.String removeTrailingWhitespaceOrISOControl(java.lang.String src)

Remove any trailing instances of whitespace or control characters from a string.

Parameters:
  `src` - the string that may have trailing characters
Returns:
  the value of the string argument with any instances of trailing whitespace or control characters removed

#### removeLeadingCharacter

    public static final java.lang.String removeLeadingCharacter(java.lang.String src,
                                          char rmchar)

Remove any leading instances of a particular character from a string.

Parameters:
  `src` - the string that may have leading characters
  `rmchar` - the character, all leading instances of which are to be removed
Returns:
  the value of the string argument with any instances of the leading character removed

#### removeLeadingWhitespaceOrISOControl

    public static final java.lang.String removeLeadingWhitespaceOrISOControl(java.lang.String src)

Remove any leading instances of whitespace or control characters from a string.

Parameters:
  `src` - the string that may have trailing characters
Returns:
  the value of the string argument with any instances of trailing whitespace or control characters removed

#### removeTrailingSpaces

    public static final java.lang.String removeTrailingSpaces(java.lang.String src)

Remove any trailing spaces from a string.

Parameters:
  `src` - the string that may have trailing spaces
Returns:
  the value of the string argument with any trailing spaces removed

#### removeLeadingSpaces

    public static final java.lang.String removeLeadingSpaces(java.lang.String src)

Remove any leading spaces from a string.

Parameters:
  `src` - the string that may have leading spaces
Returns:
  the value of the string argument with any leading spaces removed

#### removeLeadingOrTrailingWhitespaceOrISOControl

    public static final java.lang.String removeLeadingOrTrailingWhitespaceOrISOControl(java.lang.String src)

Remove any leading or trailing padding from a string.

Padding in this context means leading or trailing white space of any kind or null characters.

Parameters:
  `src` - the string that may have padding
Returns:
  the value of the string argument with any padding removed

#### compareStringsThatMayBeIntegers

    public static final int compareStringsThatMayBeIntegers(java.lang.String s1,
                                      java.lang.String s2)

Compare strings based on their integer value of they are both integers, otherwise their lexicographic order.

For example, `"001"` and`"1"` would be treated as equal, whilst `"1"` would be considered as occuring before `"10"`, which would not be the case with a simple lexicographic ordering.

Parameters:
  `s1` - the first of two strings to be compared
  `s2` - the first of two strings to be compared
Returns:
  the value 0 if the first string is equal to the second string; a value less than 0 if the first string is less than the second string; and a value greater than 0 if the first string is greater than the second string

#### compareStringsWithEmbeddedNonZeroPaddedIntegers

    public static final int compareStringsWithEmbeddedNonZeroPaddedIntegers(java.lang.String s1,
                                                      java.lang.String s2)

Compare strings based on the lexicographic order of their values, but accounting for non-zero padded integers.

Note that the comparison is more complex than a simple lexicographic comparison of strings (as described in the definition of `java.lang.String.compareTo(String)` but rather accounts for embedded non-zero padded integers by treating occurrences of space delimited integers as integer values rather than strings. For example, `"a 001 b"` and`"a 1 b"` would be treated as equal, whilst `"a 1 b"` would be considered as occuring before `"a 10 b"`, which would not be the case with a simple lexicographic ordering.

Parameters:
  `s1` - the first of two strings to be compared
  `s2` - the first of two strings to be compared
Returns:
  the value 0 if the first string is equal to the second string; a value less than 0 if the first string is lexicographically less than the second string; and a value greater than 0 if the first string is lexicographically greater than the second string

#### dump

    public static java.lang.String dump(java.lang.String s)

Create a dump of the decimal offset, hexadecimal values and printable string values of a String.

Parameters:
  `s` - the String to be dumped as if it were an array of char
Returns:
  a string containing the multiline result

#### dump

    public static java.lang.String dump(char[] chars)

Create a dump of the decimal offset, hexadecimal values and printable string values of an array of char.

Parameters:
  `chars` - the array of char to be dumped
Returns:
  a string containing the multiline result

#### toString

    public static java.lang.String toString(double[] doubleArray)

#### toString

    public static java.lang.String toString(java.lang.String[] stringArray)

#### toString

    public static java.lang.String toString(java.lang.String[][] stringArrays)

#### main

    public static void main(java.lang.String[] arg)

Unit testing.

Parameters:
  `arg` - ignored