Class XChars
- java.lang.Object
- 
- one.microstream.chars.XChars
 
- 
 public final class XChars extends Object Static util class with character operation algorithms missing in or significantly superior to those in JDK.
- 
- 
Constructor SummaryConstructors Constructor Description XChars()
 - 
Method SummaryModifier and Type Method Description static char[]append(char[] string, char c)static char[]append(char[] a, char[] b)static char[]append(char c, char[] string)static VarStringappendArraySeperated(VarString vc, char separator, Object... elements)static VarStringappendArraySeperated(VarString vs, String separator, Object... elements)static booleanapplies(CharSequence chars, int startIndex, _charPredicate predicate)static booleanapplies(CharSequence chars, _charPredicate predicate)static VarStringassembleCautiously(VarString vs, Object object)Assembles the passed instance "cautiously" in the sense that only types recognizable viaXTypes.isValueType(Object)get assembled using theirObject.toString()method, while all others are assembled usingsystemString(Object)(which behaves identical to the actual implementation ofObject.toString()).static voidassembleNewLinedTabbed(VarString vs, CharSequence... elements)static intcommonPrefixLength(char[] a, char[] b)static intcommonSubstringLength(char[] a, char[] b)static intcommonSuffixLength(char[] a, char[] b)static char[]concat(char[]... arrays)static Stringconcat(char separator, Object... parts)static booleancontains(char[] subject, int subjectOffset, int subjectLength, char[] sample, int sampleOffset, int sampleLength)static booleancontains(String[] strings, String subject)static StringconvertUnderscoresToCamelCase(String parameterName)static VarStringconvertUnderscoresToCamelCase(VarString vs, String s)static intcount(char[] haystack, int haystackOffset, int haystackCount, char needle)static intcount(char[] data, int dataOffset, int dataCount, char[] subject, int subjectOffset, int subjectCount)static StringcreateMedialCapitalsString(String... elements)static StringensureCharAtEnd(String s, char c)static booleanequals(char[] chars1, int offset1, char[] chars2, int offset2, int length)static booleanequals(String string, char[] chars, int offset)static StringescapeChar(char c)static VarStringescapeChar(VarString vc, char c)static booleanhasContent(CharSequence s)static booleanhasContent(String s)static inthashCode(char[] chars, int offset, int length)This method rebuilds theStringhashing algorithm as the JDK guys forgot as usual to make their stuff professionally modular.static booleanhasNoContent(CharSequence s)static booleanhasNoContent(String s)static intindexOf(char[] data, char c)static intindexOf(char[] data, int dataLength, char[] subject)static intindexOf(char[] source, int sourceCount, char[] target, int targetCount, int fromIndex)static intindexOf(char[] data, int offset, int length, char c)static intindexOf(char[] data, int dataOffset, int dataLength, char[] chars)static intindexOf(char[] source, int sourceOffset, int sourceCount, char[] target, int targetOffset, int targetCount, int fromIndex)static longinternalParse_longLiteral(char[] input, int offset, int length)Specialcase higher performance implementation of decimal integer literal parsing.static booleanintersects(char[] chars1, char[] chars2)Returnstrueif the two given character arrays have at least one character in common.static booleanisDigit(char c)static booleanisEmpty(CharSequence cs)static booleanisEqual(String s1, String s2)static booleanisEqualIgnoreCase(String s1, String s2)static booleanisNonWhitespace(char c)static booleanisWhitespace(char c)static voiditerate(char[] chars, int offset, int length, _charProcedure iterator)static voiditerate(char[] chars, _charProcedure iterator)static voiditerate(CharSequence chars, _charProcedure iterator)static voiditerate(String chars, _charProcedure iterator)static char[]longestCommonPrefix(char[] a, char[] b)static StringlongestCommonPrefix(String a, String b)static intlongestCommonPrefixLength(String a, String b)static char[]longestCommonSubstring(char[] a, char[] b)static StringlongestCommonSubstring(String a, String b)static intlongestCommonSubstringLength(String a, String b)static char[]longestCommonSuffix(char[] a, char[] b)static StringlongestCommonSuffix(String a, String b)static intlongestCommonSuffixLength(String a, String b)static StringlowerCaseFirstChar(String s)static intmaxCharCount_boolean()static intmaxCharCount_byte()static intmaxCharCount_char()static intmaxCharCount_double()static intmaxCharCount_float()static intmaxCharCount_int()static intmaxCharCount_long()static intmaxCharCount_short()static StringnonNullString(Object object)static <C extends CharSequence>
 CnotEmpty(C charSequence)static StringpadLeft(String s, int totalLength)static StringpadLeft(String s, int totalLength, char paddingChar)static StringpadLeft0(String s, int totalLength)static StringpadRight(String s, int totalLength)static StringpadRight(String s, int totalLength, char paddingChar)static StringpadRight0(String s, int totalLength)static StringpadSpace(String s, int chars)static byteparse_byteDecimal(char[] input)static byteparse_byteDecimal(char[] input, int offset, int length)static doubleparse_double(char[] input, int offset, int length)static floatparse_float(char[] input, int offset, int length)static intparse_intLiteral(char[] input)static intparse_intLiteral(char[] input, int offset, int length)static longparse_longDecimal(char[] input)static longparse_longDecimal(char[] input, int offset, int length)static shortparse_shortDecimal(char[] input)static shortparse_shortDecimal(char[] input, int offset, int length)static charparseChar(String s)Parses the char escape sequence Strings "\n" etc.static int[]parseTo_intArray(String... intStrings)static Integer[]parseToIntegerArray(String... intStrings)static intput(boolean value, char[] target, int offset)static intput(byte value, char[] target, int offset)static intput(char[] value, char[] target, int offset)static intput(double value, char[] target, int offset)static intput(float value, char[] target, int offset)static intput(int value, char[] target, int offset)static intput(long value, char[] target, int offset)static intput(short value, char[] target, int offset)static intput(String s, char[] target, int offset)static intputFalse(char[] target, int offset)static intputHexDec(byte value, char[] target, int offset)static intputNull(char[] target, int offset)static intputTrue(char[] target, int offset)static VarBytereadAllBytesFromInputStream(InputStream inputStream)static VarBytereadAllBytesFromInputStream(VarByte bytes, InputStream inputStream)static char[]readChars(String s)static StringreadStringFromInputStream(InputStream inputStream, Charset charset)static intreplaceFirst(char[] chars, int offset, int length, char sample, char replacement)static <C extends Consumer<String>>
 CsplitAndTrimToStrings(char[] input, char separator, C collector)High-performance implementation of the very common case to split a character sequence by a single character and trim all elements.static <C extends Consumer<String>>
 CsplitAndTrimToStrings(String input, char separator, C collector)High-performance implementation of the very common case to split a string by a single character and trim all elements.static Stringstring(char c)static StringString(char... chars)static char[]substring(char[] string, int offset, int bound)static StringsystemString(Object instance)Utility method that replicates the JVM's intrinsic system string as defined inObject.toString().static intto_int(char digit)static char[][]toArrays(XGettingSequence<String> strings)static char[]toCharArray(CharSequence c)static char[]toCharArray(StringBuffer asb)static char[]toCharArray(StringBuilder asb)static chartoHexadecimal(int b)static StringtoSingleLine(String multiLineString, String lineBreakReplacement)static StringtoString(boolean value)static StringtoString(byte value)static StringtoString(char value)static StringtoString(double value)static StringtoString(float value)static StringtoString(int value)static StringtoString(long value)static StringtoString(short value)static StringBuffertoStringBuffer(VarString vs)static StringBuffertoStringBuffer(VarString vs, int offset, int length)static StringBuildertoStringBuilder(VarString vs)static StringBuildertoStringBuilder(VarString vs, int offset, int length)static Stringtrim(String s)CallsString.trim()on a non-null argument, returnsnullotherwise.static StringtrimEmptyToNull(String s)static StringtrimToString(char[] input, int lowerOffset, int length)Creates aStringinstance with trimmed content directly from a character sequence without unnecessary intermediate instances.static byteuncheckedParse_byteDecimal(char[] input, int offset, int length)static intuncheckedParse_intLiteral(char[] input, int offset, int length)static longuncheckedParse_longLiteral(char[] input, int offset, int length)static shortuncheckedParse_shortDecimal(char[] input, int offset, int length)static StringupperCaseFirstChar(String s)Ensures that the first character of the passedStringis in upper case.static voidvalidateIndex(char[] chars, int index)static voidvalidateRange(char[] chars, int offset, int length)static StringvalueString(Object value)Returnsvalue.toString()if the passed value is not null, otherwise null.
 
- 
- 
- 
Method Detail- 
maxCharCount_bytepublic static final int maxCharCount_byte() 
 - 
maxCharCount_booleanpublic static final int maxCharCount_boolean() 
 - 
maxCharCount_shortpublic static final int maxCharCount_short() 
 - 
maxCharCount_charpublic static final int maxCharCount_char() 
 - 
maxCharCount_intpublic static final int maxCharCount_int() 
 - 
maxCharCount_floatpublic static final int maxCharCount_float() 
 - 
maxCharCount_longpublic static final int maxCharCount_long() 
 - 
maxCharCount_doublepublic static final int maxCharCount_double() 
 - 
isWhitespacepublic static final boolean isWhitespace(char c) 
 - 
isNonWhitespacepublic static final boolean isNonWhitespace(char c) 
 - 
validateIndexpublic static final void validateIndex(char[] chars, int index)
 - 
validateRangepublic static final void validateRange(char[] chars, int offset, int length)
 - 
equalspublic static final boolean equals(String string, char[] chars, int offset) 
 - 
equalspublic static final boolean equals(char[] chars1, int offset1, char[] chars2, int offset2, int length)
 - 
toHexadecimalpublic static final char toHexadecimal(int b) throws IllegalArgumentException- Throws:
- IllegalArgumentException
 
 - 
indexOfpublic static final int indexOf(char[] data, char c)
 - 
indexOfpublic static final int indexOf(char[] data, int offset, int length, char c)
 - 
indexOfpublic static final int indexOf(char[] source, int sourceOffset, int sourceCount, char[] target, int targetOffset, int targetCount, int fromIndex)
 - 
readAllBytesFromInputStreampublic static final VarByte readAllBytesFromInputStream(VarByte bytes, InputStream inputStream) throws IOException - Throws:
- IOException
 
 - 
readAllBytesFromInputStreampublic static final VarByte readAllBytesFromInputStream(InputStream inputStream) throws IOException - Throws:
- IOException
 
 - 
readStringFromInputStreampublic static final String readStringFromInputStream(InputStream inputStream, Charset charset) throws IOException - Throws:
- IOException
 
 - 
indexOfpublic static final int indexOf(char[] data, int dataLength, char[] subject)
 - 
indexOfpublic static final int indexOf(char[] data, int dataOffset, int dataLength, char[] chars)
 - 
indexOfpublic static final int indexOf(char[] source, int sourceCount, char[] target, int targetCount, int fromIndex)
 - 
replaceFirstpublic static final int replaceFirst(char[] chars, int offset, int length, char sample, char replacement)
 - 
countpublic static final int count(char[] haystack, int haystackOffset, int haystackCount, char needle)
 - 
countpublic static final int count(char[] data, int dataOffset, int dataCount, char[] subject, int subjectOffset, int subjectCount)
 - 
hasContentpublic static final boolean hasContent(CharSequence s) 
 - 
hasNoContentpublic static final boolean hasNoContent(CharSequence s) 
 - 
hasContentpublic static final boolean hasContent(String s) 
 - 
hasNoContentpublic static final boolean hasNoContent(String s) 
 - 
stringpublic static final String string(char c) 
 - 
Stringpublic static final String String(char... chars) 
 - 
upperCaseFirstCharpublic static final String upperCaseFirstChar(String s) Ensures that the first character of the passedStringis in upper case.If the passed Stringisnull, has a length of 0 or already has an upper case first character, it is returned. Otherwise, the first character of the passedStringis transformed to upper case and concatenated with the rest of the passedStringinto a newStringinstance.- Parameters:
- s- the- Stringfor which the first character shall be ensured to be upper case.
- Returns:
- a string equalling s with its first character being guaranteed to be upper case.
 
 - 
concatpublic static final char[] concat(char[]... arrays) 
 - 
appendArraySeperatedpublic static final VarString appendArraySeperated(VarString vs, String separator, Object... elements) 
 - 
appendArraySeperatedpublic static final VarString appendArraySeperated(VarString vc, char separator, Object... elements) 
 - 
toCharArraypublic static final char[] toCharArray(CharSequence c) 
 - 
toCharArraypublic static final char[] toCharArray(StringBuilder asb) 
 - 
toCharArraypublic static final char[] toCharArray(StringBuffer asb) 
 - 
intersectspublic static final boolean intersects(char[] chars1, char[] chars2)Returnstrueif the two given character arrays have at least one character in common.- Parameters:
- chars1-
- chars2-
- Returns:
- trueif the two given character arrays intersect each other.
 
 - 
appendpublic static final char[] append(char c, char[] string)
 - 
appendpublic static final char[] append(char[] string, char c)
 - 
appendpublic static final char[] append(char[] a, char[] b)
 - 
longestCommonSubstringLengthpublic static final int longestCommonSubstringLength(String a, String b) 
 - 
commonSubstringLengthpublic static final int commonSubstringLength(char[] a, char[] b)
 - 
longestCommonSubstringpublic static final char[] longestCommonSubstring(char[] a, char[] b)
 - 
substringpublic static final char[] substring(char[] string, int offset, int bound)
 - 
convertUnderscoresToCamelCasepublic static final String convertUnderscoresToCamelCase(String parameterName) 
 - 
convertUnderscoresToCamelCasepublic static final VarString convertUnderscoresToCamelCase(VarString vs, String s) 
 - 
commonPrefixLengthpublic static final int commonPrefixLength(char[] a, char[] b)
 - 
commonSuffixLengthpublic static final int commonSuffixLength(char[] a, char[] b)
 - 
longestCommonSuffixpublic static final char[] longestCommonSuffix(char[] a, char[] b)
 - 
longestCommonPrefixpublic static final char[] longestCommonPrefix(char[] a, char[] b)
 - 
parseCharpublic static final char parseChar(String s) Parses the char escape sequence Strings "\n" etc. (wihtout the "") to the singel char value represented by those strings.- Parameters:
- s-
 
 - 
escapeCharpublic static final String escapeChar(char c) 
 - 
createMedialCapitalsStringpublic static final String createMedialCapitalsString(String... elements) 
 - 
toSingleLinepublic static final String toSingleLine(String multiLineString, String lineBreakReplacement) 
 - 
notEmptypublic static final <C extends CharSequence> C notEmpty(C charSequence) 
 - 
isEmptypublic static final boolean isEmpty(CharSequence cs) 
 - 
iteratepublic static final void iterate(CharSequence chars, _charProcedure iterator) 
 - 
iteratepublic static final void iterate(String chars, _charProcedure iterator) 
 - 
iteratepublic static final void iterate(char[] chars, _charProcedure iterator)
 - 
iteratepublic static final void iterate(char[] chars, int offset, int length, _charProcedure iterator)
 - 
putpublic static final int put(byte value, char[] target, int offset)
 - 
putHexDecpublic static final int putHexDec(byte value, char[] target, int offset)
 - 
putpublic static final int put(boolean value, char[] target, int offset)
 - 
putpublic static final int put(short value, char[] target, int offset)
 - 
putpublic static final int put(int value, char[] target, int offset)
 - 
putpublic static final int put(float value, char[] target, int offset)
 - 
putpublic static final int put(long value, char[] target, int offset)
 - 
putpublic static final int put(double value, char[] target, int offset)
 - 
putpublic static final int put(String s, char[] target, int offset) 
 - 
putpublic static final int put(char[] value, char[] target, int offset)
 - 
putNullpublic static final int putNull(char[] target, int offset)
 - 
putTruepublic static final int putTrue(char[] target, int offset)
 - 
putFalsepublic static final int putFalse(char[] target, int offset)
 - 
toStringpublic static final String toString(byte value) 
 - 
toStringpublic static final String toString(boolean value) 
 - 
toStringpublic static final String toString(short value) 
 - 
toStringpublic static final String toString(char value) 
 - 
toStringpublic static final String toString(int value) 
 - 
toStringpublic static final String toString(float value) 
 - 
toStringpublic static final String toString(long value) 
 - 
toStringpublic static final String toString(double value) 
 - 
toStringBuilderpublic static final StringBuilder toStringBuilder(VarString vs) 
 - 
toStringBuilderpublic static final StringBuilder toStringBuilder(VarString vs, int offset, int length) 
 - 
toStringBufferpublic static final StringBuffer toStringBuffer(VarString vs) 
 - 
toStringBufferpublic static final StringBuffer toStringBuffer(VarString vs, int offset, int length) 
 - 
readCharspublic static final char[] readChars(String s) 
 - 
hashCodepublic static final int hashCode(char[] chars, int offset, int length)This method rebuilds theStringhashing algorithm as the JDK guys forgot as usual to make their stuff professionally modular.Returns a hash code for the passed character range. The hash code is computed as 
 usings[0]*31^(n - 1) + s[1]*31^(n-2) + ... + s[n - 1] intarithmetic, wheres[i]is the ith character counted from the given offset,nis the length and^indicates exponentiation. The hash value of an empty range is zero.- Returns:
- a hash code value for this object.
- See Also:
- String.hashCode()
 
 - 
splitAndTrimToStringspublic static final <C extends Consumer<String>> C splitAndTrimToStrings(String input, char separator, C collector) High-performance implementation of the very common case to split a string by a single character and trim all elements.- Parameters:
- input-
- separator-
- See Also:
- trimToString(char[],int,int)
 
 - 
splitAndTrimToStringspublic static final <C extends Consumer<String>> C splitAndTrimToStrings(char[] input, char separator, C collector) High-performance implementation of the very common case to split a character sequence by a single character and trim all elements.- Parameters:
- input-
- separator-
- See Also:
- trimToString(char[],int,int)
 
 - 
trimToStringpublic static final String trimToString(char[] input, int lowerOffset, int length) Creates aStringinstance with trimmed content directly from a character sequence without unnecessary intermediate instances.- Parameters:
- input-
- lowerOffset-
- length-
 
 - 
trimpublic static String trim(String s) CallsString.trim()on a non-null argument, returnsnullotherwise. (this is nothing but a staticString.trim())
 - 
parseTo_intArraypublic static final int[] parseTo_intArray(String... intStrings) 
 - 
assembleNewLinedTabbedpublic static final void assembleNewLinedTabbed(VarString vs, CharSequence... elements) 
 - 
parse_byteDecimalpublic static final byte parse_byteDecimal(char[] input) 
 - 
parse_shortDecimalpublic static final short parse_shortDecimal(char[] input) 
 - 
parse_intLiteralpublic static final int parse_intLiteral(char[] input) 
 - 
parse_longDecimalpublic static final long parse_longDecimal(char[] input) 
 - 
parse_byteDecimalpublic static final byte parse_byteDecimal(char[] input, int offset, int length)
 - 
parse_shortDecimalpublic static final short parse_shortDecimal(char[] input, int offset, int length)
 - 
parse_intLiteralpublic static final int parse_intLiteral(char[] input, int offset, int length)
 - 
parse_longDecimalpublic static final long parse_longDecimal(char[] input, int offset, int length)
 - 
parse_floatpublic static final float parse_float(char[] input, int offset, int length)
 - 
parse_doublepublic static final double parse_double(char[] input, int offset, int length)
 - 
uncheckedParse_byteDecimalpublic static final byte uncheckedParse_byteDecimal(char[] input, int offset, int length)
 - 
uncheckedParse_shortDecimalpublic static final short uncheckedParse_shortDecimal(char[] input, int offset, int length)
 - 
uncheckedParse_intLiteralpublic static final int uncheckedParse_intLiteral(char[] input, int offset, int length)
 - 
uncheckedParse_longLiteralpublic static final long uncheckedParse_longLiteral(char[] input, int offset, int length)
 - 
internalParse_longLiteralpublic static final long internalParse_longLiteral(char[] input, int offset, int length)Specialcase higher performance implementation of decimal integer literal parsing. Because as usual, the JDK implementation strategies are not acceptable when dealing with non-trivial amounts of data. Properly executed performance tests (large loop sizes, averages, nanosecond precision, etc.) showed that this algorithms is more than twice as fast as the one used in JDK (average of ~33µs vs ~75µs for long literals on same machine with measuring overhead of ~1.5µs)- Parameters:
- input-
- offset-
- length-
 
 - 
to_intpublic static final int to_int(char digit) 
 - 
toArrayspublic static final char[][] toArrays(XGettingSequence<String> strings) 
 - 
containspublic static final boolean contains(char[] subject, int subjectOffset, int subjectLength, char[] sample, int sampleOffset, int sampleLength)
 - 
systemStringpublic static String systemString(Object instance) Utility method that replicates the JVM's intrinsic system string as defined inObject.toString(). (It's funny how much functionality is missing in the JDK API).- Parameters:
- instance- the instance whose system string shall be generated.
- Returns:
- the system string for the passed instance.
 
 - 
valueStringpublic static String valueString(Object value) Returnsvalue.toString()if the passed value is not null, otherwise null.Note that this is a different behavior than String.valueOf(Object)has, as the latter returns the string"null"for a passed null reference. The latter is merely an output helper method, albeit clumsily named and placed as if it were a general utility method. THIS method here is the far more useful general utility method.The behavior of this method is needed for example for converting values in a generic data structure (e.g. a Object[] array) to string values but have the actual values, including null(information about a missing value), maintained. - Parameters:
- value- the value to be projected to its string representation if not null.
- Returns:
- a string representation of an actual passed value or a transient null.
- See Also:
- Object.toString(),- String.valueOf(Object)
 
 - 
assembleCautiouslypublic static final VarString assembleCautiously(VarString vs, Object object) Assembles the passed instance "cautiously" in the sense that only types recognizable viaXTypes.isValueType(Object)get assembled using theirObject.toString()method, while all others are assembled usingsystemString(Object)(which behaves identical to the actual implementation ofObject.toString()).- Parameters:
- vs- the- VarStringinstance to hold the assembled string.
- object- the instance to be assembled "cautiously" as described above.
- Returns:
- the passed vs instance (method-chaining viable).
- See Also:
- VarString.add(Object,java.util.function.BiConsumer),- XTypes.isValueType(Object),- Object.toString(),- systemString(Object)
 
 - 
appliespublic static final boolean applies(CharSequence chars, _charPredicate predicate) 
 - 
appliespublic static final boolean applies(CharSequence chars, int startIndex, _charPredicate predicate) 
 - 
isDigitpublic static boolean isDigit(char c) 
 
- 
 
-