Java implementations of string algorithms and data structures