Skip to content
Shekhar Gulati edited this page Jun 30, 2017 · 3 revisions

A Java 8 library for working with String. You can refer to Javadocs online http://shekhargulati.github.io/strman-java/.

Getting Started

To use strman in your application, you have to add strman in your classpath. strman is available on Maven Central 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.

<dependencies>
    <dependency>
        <groupId>com.shekhargulati</groupId>
        <artifactId>strman</artifactId>
        <version>0.4.0</version>
    </dependency>
</dependencies>

Gradle users can add following to their build.gradle file.

compile(group: 'com.shekhargulati', name: 'strman', version: '0.4.0')

To learn what we added in the latest version please refer to ./changelog.md.

Available Functions

These are the available functions in current version of library:

append

Appends Strings to value

import static strman.Strman.append
append("f", "o", "o", "b", "a", "r")
// result => "foobar"

appendArray

Append an array of String to value

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.

import static strman.Strman.at
at("foobar", 0)
// result => Optional("f")

between

Returns an array with strings between start and end.

import static strman.Strman.between
between("[abc][def]", "[", "]")
// result => ["abc","def"]

chars

Returns a String array consisting of the characters in the String.

import static strman.Strman.chars
chars("title")
// result => ["t", "i", "t", "l", "e"]

charsCount

Counts the number of occurrences of each character in the string

import static strman.Strman.charsCount
charsCount("abca")
// result => Map(("a",2),("b",1),("c",1))

collapseWhitespace

Replace consecutive whitespace characters with a single space.

import static strman.Strman.collapseWhitespace
collapseWhitespace("foo    bar")
// result => "foo bar"

contains

Verifies that the needle is contained in the value.

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

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.

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

import static strman.Strman.countSubstr
countSubstr("aaaAAAaaa", "aaa")
// result => 2
countSubstr("aaaAAAaaa", "aaa", false, false)
// result => 3

endsWith

Test if value ends with search.

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.

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

import static strman.Strman.base64Decode
base64Decode("c3RybWFu")
// result => "strman"

base64Encode

Encodes data with MIME base64.

import static strman.Strman.base64Encode
base64Encode("strman")
// result => "c3RybWFu"

binDecode

Convert binary unicode (16 digits) string to string chars

import static strman.Strman.binDecode
binDecode("0000000001000001")
// result => "A"

binEncode

Convert string chars to binary unicode (16 digits)

import static strman.Strman.binEncode
binEncode("A")
// result => "0000000001000001"

decDecode

Convert decimal unicode (5 digits) string to string chars

import static strman.Strman.decDecode
decDecode("00065")
// result => "A"

decEncode

Convert string chars to decimal unicode (5 digits)

import static strman.Strman.decEncode
decEncode("A")
// result => "00065"

ensureRight

Ensures that the value ends with suffix. If it doesn't, it's appended.

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

import static strman.Strman.first
first("foobar", 3)
// result => "foo"

head

Return the first char of String

import static strman.Strman.head
head("foobar")
// result => "f"

hexDecode

Convert hexadecimal unicode (4 digits) string to string chars

import static strman.Strman.hexDecode
hexDecode("0041")
// result => "A"

hexEncode

Convert string chars to hexadecimal unicode (4 digits)

import static strman.Strman.hexEncode
hexEncode("A")
// result => "0041"

inequal

Tests if two Strings are inequal

import static strman.Strman.inequal
inequal("a", "b")
// result => true

insert

Inserts 'substr' into the 'value' at the 'index' provided.

import static strman.Strman.insert
insert("fbar", "oo", 1)
// result => "foobar"

last

Return the last n chars of String

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.

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.

import static strman.Strman.lastIndexOf
lastIndexOf("foobarfoobar", "F", false)
// result => 6

leftTrim

Removes all spaces on left

import static strman.Strman.leftTrim
leftTrim("     strman")
// result => "strman"

prepend

Return a new String starting with prepends

prepend("r", "f", "o", "o", "b", "a")
// "foobar"

removeEmptyStrings

Remove empty Strings from string array

removeEmptyStrings(new String[]{"aa", "", "   ", "bb", "cc", null})
// result => ["aa", "bb", "cc"]

removeLeft

Returns a new String with the prefix removed, if present.

removeLeft("foofoo", "foo")
// "foo"

removeNonWords

Remove all non word characters.

removeNonWords("foo&bar-")
// result => "foobar"

removeRight

Returns a new string with the 'suffix' removed, if present.

removeRight("foobar", "bar")
// result => "foo"
removeRight("foobar", "BAR",false)
// result => "foo"

removeSpaces

Remove all spaces and replace for value.

removeSpaces("foo bar")
// result => "foobar"

repeat

Returns a repeated string given a multiplier.

repeat("1", 3)
// result  => "111"

reverse

Reverse the input String

reverse("foo")
// result => "oof"

rightPad

Returns a new string of a given length such that the ending of the string is padded.

rightPad("1", "0", 5)
// result => "10000"

rightTrim

Remove all spaces on right.

rightTrim("strman   ")
// result => "strman"

safeTruncate

Truncate the string securely, not cutting a word in half. It always returns the last full word.

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.

truncate("A Javascript string manipulation library.", 14, "...")
// result => "A Javascrip..."

htmlDecode

Converts all HTML entities to applicable characters.

htmlDecode("&SHcy;")
// result => Ш

htmlEncode

Convert all applicable characters to HTML entities.

htmlEncode("Ш")
// result => "&SHcy;"

shuffle

It returns a string with its characters in random order.

shuffle("shekhar")

slugify

Convert a String to a slug

slugify("foo bar")
// result => "foo-bar"

transliterate

Remove all non valid characters. Example: change á => a or ẽ => e.

transliterate("fóõ bár")
// result => "foo bar"

trimEnd

Removes trailing characters from string.

trimEnd("   abc   ")
// result => Optional("   abc")
trimEnd("")
// result Optional.empty()

surround

Surrounds a 'value' with the given 'prefix' and 'suffix'.

surround("div", "<", ">"
// result => "<div>s"

tail

tail("foobar")
// result => "oobar"

toCamelCase

Transform to camelCase

toCamelCase("CamelCase")
// result => "camelCase"
toCamelCase("camel-case")
// result => "camelCase"

toStudlyCase

Transform to StudlyCaps.

toStudlyCase("hello world")
// result => "HelloWorld"

toDecamelize

Decamelize String

toDecamelize("helloWorld",null)
// result => "hello world"

toKebabCase

Transform to kebab-case.

toKebabCase("hello World")
// result => "hello-world"

toSnakeCase

Transform to snake_case.

toSnakeCase("hello world")
// result => "hello_world"

upperFirst

Converts the first character of string to upper case.

upperFirst("fred")
// result => "Fred"

words

Splits a String to words

words("This is a string, with words!")
// result => ["This", "is", "a", "string", "with", "words"]

isEnclosedBetween

Verifies whether String is enclosed by encloser

isEnclosedBetween("{{shekhar}}", "{{", "}}")
// result => true

join

Join concatenates all the elements of the strings array into a single String. The separator string is placed between elements in the resulting string.

join(new String[]{"hello","world","123"}, ";")
// result => "hello;world;123")

isBlank

isEmpty returns true if a string is blank or null and false otherwise.

isBlank("")
// result => true)
isBlank(null)
// result => true)
isBlank("test")
// result => false)

underscored

underscored function converts a camel or dashed string into an underscored one

underscored("MozTransform")
// result => "moz_transform")

zip

zip function aggregates the contents of n strings into a single list of tuples.

zip("abc", "def")
// result => ["ad", "be", "cf"]

zip("abc", "d")
// result => ["ad"]

lines

lines split input to lines

lines("Hello\r\nWorld")
// result => ["Hello", "World"]

dasherize

dasherize converts a underscored or camelized string into an dasherized one.

dasherize("the_dasherize_string_method")
// result => "the-dasherize-string-method"

humanize

humanize converts an underscored, camelized, or dasherized string into a humanized one.

humanize("the_humanize_method")
// result => "The humanize method"

swapCase

swapCase returns a copy of the string in which all the case-based characters have had their case swapped.

swapCase("AaBbCcDdEe")
// result => "aAbBcCdDeE"

chop

chop chops the input string into parts of length step

chop("whitespace", 3);
// result => ["whi", "tes", "pac", "e"]