strman-java [![Build Status](https://travis-ci.org/shekhargulati/strman-java.svg?branch=master)](https://travis-ci.org/shekhargulati/strman-java) [![codecov.io](https://codecov.io/github/shekhargulati/strman-java/coverage.svg?branch=master)](https://codecov.io/github/shekhargulati/strman-java?branch=master) [![License](https://img.shields.io/:license-mit-blue.svg)](./LICENSE.txt) ------ A Java 8 library for working with String. It is inspired by [dleitee/strman](https://github.com/dleitee/strman). Getting Started -------- To use strman in your application, you have to add `strman` in your classpath. strman is available on [Maven Central](http://search.maven.org/) so you just need to add dependency to your favorite build tool as show below. For Apache Maven users, please add following to your pom.xml. ```xml com.shekhargulati strman 0.1.0 jar ``` Gradle users can add following to their build.gradle file. ``` compile(group: 'com.shekhargulati', name: 'strman', version: '0.1.0', ext: 'jar'){ transitive=true } ``` ## Available Functions These are the available functions in current version of library: ## append Appends Strings to value ```java import static strman.Strman.append append("f", "o", "o", "b", "a", "r") // result => "foobar" ``` ## appendArray Append an array of String to value ```java import static strman.Strman.appendArray appendArray("f", new String[]{"o", "o", "b", "a", "r"} // result => "foobar" ``` ## at Get the character at index. This method will take care of negative indexes. ```java import static strman.Strman.at at("foobar", 0) // result => Optional("f") ``` ## between Returns an array with strings between start and end. ```java import static strman.Strman.between between("[abc][def]", "[", "]") // result => ["abc","def"] ``` ## chars Returns a String array consisting of the characters in the String. ```java import static strman.Strman.chars chars("title") // result => ["t", "i", "t", "l", "e"] ``` ## collapseWhitespace Replace consecutive whitespace characters with a single space. ```java import static strman.Strman.collapseWhitespace collapseWhitespace("foo bar") // result => "foo bar" ``` ## contains Verifies that the needle is contained in the value. ```java import static strman.Strman.contains contains("foo bar","foo") // result => true contains("foo bar","FOO", false) // turning off case sensitivity // result => true ``` ## containsAll Verifies that all needles are contained in value ```java import static strman.Strman.containsAll containsAll("foo bar", new String[]{"foo", "bar"}) // result => true containsAll("foo bar", new String[]{"FOO", "bar"},false) // result => true ``` ## containsAny Verifies that one or more of needles are contained in value. ```java import static strman.Strman.containsAny containsAny("bar foo", new String[]{"FOO", "BAR", "Test"}, true) // result => true ``` ## countSubstr Count the number of times substr appears in value ```java import static strman.Strman.countSubstr countSubstr("aaaAAAaaa", "aaa") // result => 2 countSubstr("aaaAAAaaa", "aaa", false, false) // result => 3 ``` ## endsWith Test if value ends with search. ```java import static strman.Strman.endsWith endsWith("foo bar", "bar") // result => true endsWith("foo Bar", "BAR", false) // result => true ``` ## ensureLeft Ensures that the value begins with prefix. If it doesn't exist, it's prepended. ```java import static strman.Strman.ensureLeft ensureLeft("foobar", "foo") // result => "foobar" ensureLeft("bar", "foo") // result => "foobar" ensureLeft("foobar", "FOO", false) // result => "foobar" ``` ## base64Decode Decodes data encoded with MIME base64 ```java import static strman.Strman.base64Decode base64Decode("c3RybWFu") // result => "strman" ``` ## base64Encode Encodes data with MIME base64. ```java import static strman.Strman.base64Encode base64Encode("strman") // result => "c3RybWFu" ``` ## binDecode Convert binary unicode (16 digits) string to string chars ```java import static strman.Strman.binDecode binDecode("0000000001000001") // result => "A" ``` ## binEncode Convert string chars to binary unicode (16 digits) ```java import static strman.Strman.binEncode binEncode("A") // result => "0000000001000001" ``` ## decDecode Convert decimal unicode (5 digits) string to string chars ```java import static strman.Strman.decDecode decDecode("00065") // result => "A" ``` ## decEncode Convert string chars to decimal unicode (5 digits) ```java import static strman.Strman.decEncode decEncode("A") // result => "00065" ``` ## ensureRight Ensures that the value ends with suffix. If it doesn't, it's appended. ```java import static strman.Strman.ensureRight ensureRight("foo", "bar") // result => "foobar" ensureRight("foobar", "bar") // result => "foobar" ensureRight("fooBAR", "bar", false) // result => "foobar" ``` ## first Returns the first n chars of String ```java import static strman.Strman.first first("foobar", 3) // result => "foo" ``` ## head Return the first char of String ```java import static strman.Strman.head head("foobar") // result => "f" ``` ## hexDecode Convert hexadecimal unicode (4 digits) string to string chars ```java import static strman.Strman.hexDecode hexDecode("0041") // result => "A" ``` ## hexEncode Convert string chars to hexadecimal unicode (4 digits) ```java import static strman.Strman.hexEncode hexEncode("A") // result => "0041" ``` ## inequal Tests if two Strings are inequal ```java import static strman.Strman.inequal inequal("a", "b") // result => true ``` ## insert Inserts 'substr' into the 'value' at the 'index' provided. ```java import static strman.Strman.insert insert("fbar", "oo", 1) // result => "foobar" ``` ## last Return the last n chars of String ```java import static strman.Strman.last last("foobarfoo", 3) // result => "foo" ``` ## leftPad Returns a new string of a given length such that the beginning of the string is padded. ```java import static strman.Strman.leftPad leftPad("1", "0", 5) // result => "00001" ``` ## lastIndexOf This method returns the index within the calling String object of the last occurrence of the specified value, searching backwards from the offset. ```java import static strman.Strman.lastIndexOf lastIndexOf("foobarfoobar", "F", false) // result => 6 ``` ## leftTrim Removes all spaces on left ```java import static strman.Strman.leftTrim leftTrim(" strman") // result => "strman" ``` ## prepend Return a new String starting with prepends ```java prepend("r", "f", "o", "o", "b", "a") // "foobar" ``` ## removeEmptyStrings Remove empty Strings from string array ```java removeEmptyStrings(new String[]{"aa", "", " ", "bb", "cc", null}) // result => ["aa", "bb", "cc"] ``` ## removeLeft Returns a new String with the prefix removed, if present. ```java removeLeft("foofoo", "foo") // "foo" ``` ## removeNonWords Remove all non word characters. ```java removeNonWords("foo&bar-") // result => "foobar" ``` ## removeRight Returns a new string with the 'suffix' removed, if present. ```java removeRight("foobar", "bar") // result => "foo" removeRight("foobar", "BAR",false) // result => "foo" ``` ## removeSpaces Remove all spaces and replace for value. ```java removeSpaces("foo bar") // result => "foobar" ``` ## repeat Returns a repeated string given a multiplier. ``` repeat("1", 3) // result => "111" ``` ## reverse Reverse the input String ```java reverse("foo") // result => "oof" ``` ## rightPad Returns a new string of a given length such that the ending of the string is padded. ```java rightPad("1", "0", 5) // result => "10000" ``` ## rightTrim Remove all spaces on right. ```java rightTrim("strman ") // result => "strman" ``` ## safeTruncate Truncate the string securely, not cutting a word in half. It always returns the last full word. ```java safeTruncate("foo bar", 4, ".") // result => "foo." safeTruncate("A Javascript string manipulation library.", 16, "...") // result => "A Javascript..." ``` ## truncate Truncate the unsecured form string, cutting the independent string of required position. ```java truncate("A Javascript string manipulation library.", 14, "...") // result => "A Javascrip..." ``` ## htmlDecode Converts all HTML entities to applicable characters. ```java htmlDecode("Ш") // result => Ш ``` ## htmlEncode Convert all applicable characters to HTML entities. ```java htmlEncode("Ш") // result => "Ш" ``` ## shuffle It returns a string with its characters in random order. ```java shuffle("shekhar") ``` ## slugify Convert a String to a slug ```java slugify("foo bar") // result => "foo-bar" ``` ## transliterate Remove all non valid characters. Example: change á => a or ẽ => e. ```java transliterate("fóõ bár") // result => "foo bar" ``` ## surround Surrounds a 'value' with the given 'prefix' and 'suffix'. ```java surround("div", "<", ">" // result => "
s" ``` ## tail ```java tail("foobar") // result => "oobar" ``` ## toCamelCase Transform to camelCase ```java toCamelCase("CamelCase") // result => "camelCase" toCamelCase("camel-case") // result => "camelCase" ``` ## toStudlyCase Transform to StudlyCaps. ```java toStudlyCase("hello world") // result => "HelloWorld" ``` ## toDecamelize Decamelize String ```java toDecamelize("helloWorld",null) // result => "hello world" ``` ## toKebabCase Transform to kebab-case. ```java toKebabCase("hello World") // result => "hello-world" ``` ## toSnakeCase Transform to snake_case. ```java toSnakeCase("hello world") // result => "hello_world" ``` License ------- strman is licensed under the MIT License - see the `LICENSE` file for details.