codesimian
Class Strings

java.lang.Object
  extended by codesimian.Strings

public class Strings
extends java.lang.Object


Nested Class Summary
static class Strings.PrintCS
          Prints the toString() of param0.
static class Strings.PrintNumber
          Prints the value of param0.D() to standard output.
static class Strings.PrintString
          Prints a String to standard output, or if countP()==2 prints to P(1).
static class Strings.ReadChar
          Reads a char from standard input (usually keyboard).
static class Strings.Similarity
           
static class Strings.StringSplit
          same as java.lang.String.split(String regularExpressionDelimiter), but copied here so applets (on the internet) can use it without complaining about security of dynamic method calls.
static class Strings.TokenizeAllCharPairs
           
 
Constructor Summary
Strings()
           
 
Method Summary
static java.lang.String bytesToBase16Abc(byte[] bytes)
          returns a string twice as long as the byte array.
static java.lang.String cutEndIfTooLongDotDotDot(java.lang.String s, int maxReturnedStringLen)
           
static java.lang.String descape(java.lang.String includesEscapeChars)
          In a String with escape characters (preceded by \) removes \ and the following char and replaces it with whatever standard string rules say.
static java.lang.String escape(java.lang.String anyChars)
          Example: escape("q\nrs\tuv\\z\\nz") returns "q\\nrs\\tuv\\\\z\\\\nz"
static java.lang.String escapeAllExcept(java.lang.String anyChars, java.lang.String charsNotToEscape)
          Example: escapeAllExcept("q\nrs\tuv\\z\\nz","\r\n") returns "q\nrs\\tuv\\\\z\\\\nz".
static java.lang.String escapeAllExceptRN(java.lang.String anyChars)
           
static int len(java.lang.String s)
           
static int[] letterPairs729(java.lang.String text)
          Returns quantity of each letter pair.
static boolean notNullEmpty(java.lang.String doIHaveAtLeastOneChar)
           
static boolean nullEmpty(java.lang.String amINullOrEmpty)
           
static int[] quantityOfEachLetter(java.lang.String x)
          returns an array size 26, how many of each letter (case INsensitive) is in the String
static java.lang.String replaceAllStringWithString(java.lang.String theString, java.lang.String replaceMe, java.lang.String replaceWith)
           
static java.lang.String reverse(java.lang.String s)
           
static java.lang.String shortToBinaryString(short s)
           
static double similarity(java.lang.String a, java.lang.String b)
          Returns between 0 (not at all similar) and 1 (exactly the same string).
static double similarityByLetterFreq(java.lang.String a, java.lang.String b)
          returns some interpretation of similarity, on a relative scale.
static double similarityByLetterPairsAndLength(java.lang.String a, java.lang.String b)
          returns between 0 (as unlike as possible) and 1 (letters in both strings equal)
static double similarityByLetters(java.lang.String a, java.lang.String b)
          what the strings look like, not what they mean
static double similarityWithContext(java.lang.String a, java.lang.String b, java.lang.String contextAsLongText)
          example: similarityWithContext("write", "keyboard", "music") should return a lower number than similarityWithContext("write", "keyboard", "computer") Any of the strings can be much longer than 1 word.
static SimpleList stringToCharList(java.lang.String myChars)
          Returns a CS whose params are Const's with the char values from the string.
 java.lang.String tabs(int quantity)
           
static java.lang.String wrap(java.lang.String s)
           
static java.lang.String wrap(java.lang.String s, int limit)
           
static java.lang.String wrap(java.lang.String s, int limit, java.lang.String canBreakLineAtTheseChars, java.lang.String lineBreak)
          THIS FUNCTION DOES NOT ALWAYS WORK.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Strings

public Strings()
Method Detail

stringToCharList

public static SimpleList stringToCharList(java.lang.String myChars)
Returns a CS whose params are Const's with the char values from the string. Returns Consts from Const's static constant-pool.


similarityByLetterFreq

public static double similarityByLetterFreq(java.lang.String a,
                                            java.lang.String b)
returns some interpretation of similarity, on a relative scale. Currently it just compares quantities of each letter.


similarityByLetterPairsAndLength

public static double similarityByLetterPairsAndLength(java.lang.String a,
                                                      java.lang.String b)
returns between 0 (as unlike as possible) and 1 (letters in both strings equal)


similarityByLetters

public static double similarityByLetters(java.lang.String a,
                                         java.lang.String b)
what the strings look like, not what they mean


similarity

public static double similarity(java.lang.String a,
                                java.lang.String b)
Returns between 0 (not at all similar) and 1 (exactly the same string). TODO: use a more complex similarity algorithm, like natural language neural nets. TODO: replace similarity(String,String) with similarity(String,String,Liquid). The Liquid.amount() would be how much effort is put into determining if the 2 strings are similar or not.


similarityWithContext

public static double similarityWithContext(java.lang.String a,
                                           java.lang.String b,
                                           java.lang.String contextAsLongText)
example: similarityWithContext("write", "keyboard", "music") should return a lower number than similarityWithContext("write", "keyboard", "computer") Any of the strings can be much longer than 1 word.


quantityOfEachLetter

public static int[] quantityOfEachLetter(java.lang.String x)
returns an array size 26, how many of each letter (case INsensitive) is in the String


escapeAllExcept

public static java.lang.String escapeAllExcept(java.lang.String anyChars,
                                               java.lang.String charsNotToEscape)
Example: escapeAllExcept("q\nrs\tuv\\z\\nz","\r\n") returns "q\nrs\\tuv\\\\z\\\\nz". This is useful for multi-line string-literals (if charsToEscape contains '\r' and '\n').


escape

public static java.lang.String escape(java.lang.String anyChars)
Example: escape("q\nrs\tuv\\z\\nz") returns "q\\nrs\\tuv\\\\z\\\\nz"


escapeAllExceptRN

public static java.lang.String escapeAllExceptRN(java.lang.String anyChars)

descape

public static java.lang.String descape(java.lang.String includesEscapeChars)
In a String with escape characters (preceded by \) removes \ and the following char and replaces it with whatever standard string rules say.

For example, \t becomes a TAB and \n is a NEWLINE and \\ is a BACKSLASH.

This function is not finished. It needs to include all valid Java String escape-codes.


replaceAllStringWithString

public static java.lang.String replaceAllStringWithString(java.lang.String theString,
                                                          java.lang.String replaceMe,
                                                          java.lang.String replaceWith)

tabs

public java.lang.String tabs(int quantity)

shortToBinaryString

public static java.lang.String shortToBinaryString(short s)

letterPairs729

public static int[] letterPairs729(java.lang.String text)
Returns quantity of each letter pair. For example, "abbbbc d" has the following letter pairs: "ab" "bb" "bc" "c " " d". Returns an array size 27*27=729. It would be 26, but all nonletters are the last one.


nullEmpty

public static boolean nullEmpty(java.lang.String amINullOrEmpty)

notNullEmpty

public static boolean notNullEmpty(java.lang.String doIHaveAtLeastOneChar)

len

public static int len(java.lang.String s)

cutEndIfTooLongDotDotDot

public static java.lang.String cutEndIfTooLongDotDotDot(java.lang.String s,
                                                        int maxReturnedStringLen)

bytesToBase16Abc

public static java.lang.String bytesToBase16Abc(byte[] bytes)
returns a string twice as long as the byte array. a is 0, b is 1... p is 15


reverse

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

wrap

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

wrap

public static java.lang.String wrap(java.lang.String s,
                                    int limit)

wrap

public static java.lang.String wrap(java.lang.String s,
                                    int limit,
                                    java.lang.String canBreakLineAtTheseChars,
                                    java.lang.String lineBreak)
THIS FUNCTION DOES NOT ALWAYS WORK. NEEDS TESTING