mirror of
https://github.com/shekhargulati/strman-java.git
synced 2026-09-24 02:25:09 +00:00
Updated documentation, licenses, and other clean up
This commit is contained in:
21
LICENSE.txt
Normal file
21
LICENSE.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
The MIT License
|
||||
|
||||
Copyright 2016 Shekhar Gulati <shekhargulati84@gmail.com>.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
573
README.md
573
README.md
@@ -1,120 +1,567 @@
|
||||
strman-java
|
||||
------
|
||||
|
||||
A Java 8 string manipulation library without any dependencies. It is inspired by [dleitee/strman](https://github.com/dleitee/strman).
|
||||
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
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.shekhargulati</groupId>
|
||||
<artifactId>strman</artifactId>
|
||||
<version>0.1.0</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
```
|
||||
|
||||
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
|
||||
|
||||
* [append](https://github.com/shekhargulati/strman-java#appendvalue-strings)
|
||||
* [appendArray](https://github.com/shekhargulati/strman-java#appendarrayvalue-strings)
|
||||
* [at](https://github.com/shekhargulati/strman-java#atvalue-index)
|
||||
* [between](https://github.com/shekhargulati/strman-java#betweenvalue-start-end)
|
||||
* [between](https://github.com/shekhargulati/strman-java#betweenvalue-start-end)
|
||||
* [chars](https://github.com/shekhargulati/strman-java#charsvalue)
|
||||
* [collapseWhitespace](https://github.com/shekhargulati/strman-java#collapsewhitespacevalue)
|
||||
These are the available functions in current version of library:
|
||||
|
||||
## append
|
||||
|
||||
## append(value, strings...)
|
||||
|
||||
This method will append `strings` to the `value`.
|
||||
Appends Strings to value
|
||||
|
||||
```java
|
||||
import static strman.Strman.append;
|
||||
String title = "s";
|
||||
String result = append(title, "tr","m","an");
|
||||
// result = "strman"
|
||||
import static strman.append
|
||||
append("f", "o", "o", "b", "a", "r")
|
||||
// result => "foobar"
|
||||
```
|
||||
|
||||
## appendArray
|
||||
|
||||
## appendArray(value, strings)
|
||||
|
||||
This method will append all the values in `strings` array to the `value`.
|
||||
Append an array of String to value
|
||||
|
||||
```java
|
||||
import static strman.Strman.appendArray;
|
||||
String title = "s";
|
||||
String result = appendArray(title, new String[]{"tr","m","an"});
|
||||
// result = "strman"
|
||||
import static strman.appendArray
|
||||
appendArray("f", new String[]{"o", "o", "b", "a", "r"}
|
||||
// result => "foobar"
|
||||
```
|
||||
|
||||
## at(value, index)
|
||||
## at
|
||||
|
||||
Gets the character at index.
|
||||
Get the character at index. This method will take care of negative indexes.
|
||||
|
||||
```java
|
||||
import static strman.Strman.at;
|
||||
String result = at("foobar", 0);
|
||||
// result = "f"
|
||||
import static strman.at
|
||||
at("foobar", 0)
|
||||
// result => Optional("f")
|
||||
```
|
||||
|
||||
## between(value, start, end)
|
||||
## between
|
||||
|
||||
Returns array with strings between `start` and `end`.
|
||||
Returns an array with strings between start and end.
|
||||
|
||||
```java
|
||||
import static strman.Strman.between;
|
||||
String[] parts = between("[abc][def]", "[", "]";
|
||||
// parts = ["abc","def"]
|
||||
import static strman.between
|
||||
between("[abc][def]", "[", "]")
|
||||
// result => ["abc","def"]
|
||||
```
|
||||
|
||||
## chars(value)
|
||||
## chars
|
||||
|
||||
Returns a String array consisting of the characters in the String.
|
||||
|
||||
```java
|
||||
final String title = "title";
|
||||
char[] result = chars(title);
|
||||
// result = ["t", "i", "t", "l", "e"]
|
||||
import static strman.chars
|
||||
chars("title")
|
||||
// result => ["t", "i", "t", "l", "e"]
|
||||
```
|
||||
|
||||
|
||||
## collapseWhitespace(value)
|
||||
## collapseWhitespace
|
||||
|
||||
Replace consecutive whitespace characters with a single space.
|
||||
|
||||
```java
|
||||
final String input = " foo bar ";
|
||||
final String result = collapseWhitespace(title);
|
||||
// result = "foo bar";
|
||||
import static strman.collapseWhitespace
|
||||
collapseWhitespace("foo bar")
|
||||
// result => "foo bar"
|
||||
```
|
||||
|
||||
## contains(value, needle, caseSensitive)
|
||||
## contains
|
||||
|
||||
Verifies that the needle is contained in value.
|
||||
Verifies that the needle is contained in the value.
|
||||
|
||||
```java
|
||||
boolean result = contains("foo bar", "BAR", true);
|
||||
// result = false
|
||||
import static strman.contains
|
||||
contains("foo bar","foo")
|
||||
// result => true
|
||||
|
||||
boolean result = contains("foo bar", "FOO");
|
||||
// result = true
|
||||
contains("foo bar","FOO", false) // turning off case sensitivity
|
||||
// result => true
|
||||
```
|
||||
|
||||
## containsAll(value, needles, caseSensitive)
|
||||
## containsAll
|
||||
|
||||
Verifies that all needles are contained in value.
|
||||
Verifies that all needles are contained in value
|
||||
|
||||
```java
|
||||
boolean result = containsAll("foo bar", new String[]{"FOO", "bar"});
|
||||
// result = true
|
||||
|
||||
boolean result = containsAll("foo bar", new String[]{"FOO", "bar"}, true);
|
||||
// result = false
|
||||
import static strman.containsAll
|
||||
containsAll("foo bar", new String[]{"foo", "bar"})
|
||||
// result => true
|
||||
|
||||
containsAll("foo bar", new String[]{"FOO", "bar"},false)
|
||||
// result => true
|
||||
```
|
||||
|
||||
## containsAny(value, needles, caseSensitive)
|
||||
|
||||
## containsAny
|
||||
|
||||
Verifies that one or more of needles are contained in value.
|
||||
|
||||
```java
|
||||
String title = "foo bar";
|
||||
String needles = ["foo", "bar", "test"];
|
||||
String result = containsAny(title, needles, true);
|
||||
// result = true
|
||||
import static strman.containsAny
|
||||
containsAny("bar foo", new String[]{"FOO", "BAR", "Test"}, true)
|
||||
// result => true
|
||||
```
|
||||
|
||||
## Other functions that can be added
|
||||
## countSubstr
|
||||
|
||||
1. head
|
||||
2. tail
|
||||
Count the number of times substr appears in value
|
||||
|
||||
```java
|
||||
import static 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.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.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.base64Decode
|
||||
base64Decode("c3RybWFu")
|
||||
// result => "strma"
|
||||
```
|
||||
|
||||
## base64Encode
|
||||
|
||||
Encodes data with MIME base64.
|
||||
|
||||
```java
|
||||
import static strman.base64Encode
|
||||
base64Encode("strman")
|
||||
// result => "c3RybWFu"
|
||||
```
|
||||
|
||||
## binDecode
|
||||
|
||||
Convert binary unicode (16 digits) string to string chars
|
||||
|
||||
```java
|
||||
import static strman.binDecode
|
||||
binDecode("0000000001000001")
|
||||
// result => "A"
|
||||
```
|
||||
|
||||
## binEncode
|
||||
|
||||
Convert string chars to binary unicode (16 digits)
|
||||
|
||||
```java
|
||||
import static strman.binEncode
|
||||
binEncode("A")
|
||||
// result => "0000000001000001"
|
||||
```
|
||||
|
||||
## decDecode
|
||||
|
||||
Convert decimal unicode (5 digits) string to string chars
|
||||
|
||||
```java
|
||||
import static strman.decDecode
|
||||
decDecode("00065")
|
||||
// result => "A"
|
||||
```
|
||||
|
||||
## decEncode
|
||||
|
||||
Convert string chars to decimal unicode (5 digits)
|
||||
|
||||
```java
|
||||
import static 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.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.first
|
||||
first("foobar", 3)
|
||||
// result => "foo"
|
||||
```
|
||||
|
||||
## head
|
||||
|
||||
Return the first char of String
|
||||
|
||||
```java
|
||||
import static strman.head
|
||||
head("foobar")
|
||||
// result => "f"
|
||||
```
|
||||
|
||||
## hexDecode
|
||||
|
||||
Convert hexadecimal unicode (4 digits) string to string chars
|
||||
|
||||
```java
|
||||
import static strman.hexDecode
|
||||
hexDecode("0041")
|
||||
// result => "A"
|
||||
```
|
||||
|
||||
## hexEncode
|
||||
|
||||
Convert string chars to hexadecimal unicode (4 digits)
|
||||
|
||||
```java
|
||||
import static strman.hexEncode
|
||||
hexEncode("A")
|
||||
// result => "0041"
|
||||
```
|
||||
|
||||
## inequal
|
||||
|
||||
Tests if two Strings are inequal
|
||||
|
||||
```java
|
||||
import static strman.inequal
|
||||
inequal("a", "b")
|
||||
// result => true
|
||||
```
|
||||
|
||||
## insert
|
||||
|
||||
Inserts 'substr' into the 'value' at the 'index' provided.
|
||||
|
||||
```java
|
||||
import static strman.insert
|
||||
insert("fbar", "oo", 1)
|
||||
// result => "foobar"
|
||||
```
|
||||
|
||||
## last
|
||||
|
||||
Return the last n chars of String
|
||||
|
||||
```java
|
||||
import static 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.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.lastIndexOf
|
||||
lastIndexOf("foobarfoobar", "F", false)
|
||||
// result => 6
|
||||
```
|
||||
|
||||
## leftTrim
|
||||
|
||||
Removes all spaces on left
|
||||
|
||||
```java
|
||||
import static 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 => "<div>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.
|
||||
@@ -1,5 +1,5 @@
|
||||
group 'com.shekhargulati'
|
||||
version '1.0-SNAPSHOT'
|
||||
version '0.1.0-SNAPSHOT'
|
||||
|
||||
apply plugin: 'java'
|
||||
|
||||
|
||||
@@ -1,3 +1,29 @@
|
||||
/*
|
||||
*
|
||||
* * The MIT License
|
||||
* *
|
||||
* * Copyright 2016 Shekhar Gulati <shekhargulati84@gmail.com>.
|
||||
* *
|
||||
* * Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* * of this software and associated documentation files (the "Software"), to deal
|
||||
* * in the Software without restriction, including without limitation the rights
|
||||
* * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* * copies of the Software, and to permit persons to whom the Software is
|
||||
* * furnished to do so, subject to the following conditions:
|
||||
* *
|
||||
* * The above copyright notice and this permission notice shall be included in
|
||||
* * all copies or substantial portions of the Software.
|
||||
* *
|
||||
* * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* * THE SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
package strman;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@@ -1,9 +1,36 @@
|
||||
|
||||
/*
|
||||
*
|
||||
* * The MIT License
|
||||
* *
|
||||
* * Copyright 2016 Shekhar Gulati <shekhargulati84@gmail.com>.
|
||||
* *
|
||||
* * Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* * of this software and associated documentation files (the "Software"), to deal
|
||||
* * in the Software without restriction, including without limitation the rights
|
||||
* * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* * copies of the Software, and to permit persons to whom the Software is
|
||||
* * furnished to do so, subject to the following conditions:
|
||||
* *
|
||||
* * The above copyright notice and this permission notice shall be included in
|
||||
* * all copies or substantial portions of the Software.
|
||||
* *
|
||||
* * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* * THE SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
package strman;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public abstract class HtmlEntities {
|
||||
abstract class HtmlEntities {
|
||||
public static final Map<String, String> decodedEntities = new HashMap<String, String>() {
|
||||
{
|
||||
put("Æ", "\u00C6");
|
||||
|
||||
@@ -1,3 +1,30 @@
|
||||
|
||||
/*
|
||||
*
|
||||
* * The MIT License
|
||||
* *
|
||||
* * Copyright 2016 Shekhar Gulati <shekhargulati84@gmail.com>.
|
||||
* *
|
||||
* * Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* * of this software and associated documentation files (the "Software"), to deal
|
||||
* * in the Software without restriction, including without limitation the rights
|
||||
* * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* * copies of the Software, and to permit persons to whom the Software is
|
||||
* * furnished to do so, subject to the following conditions:
|
||||
* *
|
||||
* * The above copyright notice and this permission notice shall be included in
|
||||
* * all copies or substantial portions of the Software.
|
||||
* *
|
||||
* * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* * THE SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
package strman;
|
||||
|
||||
import java.util.*;
|
||||
@@ -149,7 +176,7 @@ public abstract class Strman {
|
||||
*/
|
||||
public static boolean containsAll(final String value, final String[] needles) {
|
||||
validate(value, NULL_STRING_PREDICATE, NULL_STRING_MSG_SUPPLIER);
|
||||
return Arrays.stream(needles).allMatch(needle -> contains(value, needle, false));
|
||||
return Arrays.stream(needles).allMatch(needle -> contains(value, needle, true));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -197,7 +224,7 @@ public abstract class Strman {
|
||||
* @return count of times substring exists
|
||||
*/
|
||||
public static long countSubstr(final String value, final String subStr) {
|
||||
return countSubstr(value, subStr, false, false);
|
||||
return countSubstr(value, subStr, true, false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
package strman;
|
||||
/*
|
||||
*
|
||||
* * The MIT License
|
||||
* *
|
||||
* * Copyright 2016 Shekhar Gulati <shekhargulati84@gmail.com>.
|
||||
* *
|
||||
* * Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* * of this software and associated documentation files (the "Software"), to deal
|
||||
* * in the Software without restriction, including without limitation the rights
|
||||
* * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* * copies of the Software, and to permit persons to whom the Software is
|
||||
* * furnished to do so, subject to the following conditions:
|
||||
* *
|
||||
* * The above copyright notice and this permission notice shall be included in
|
||||
* * all copies or substantial portions of the Software.
|
||||
* *
|
||||
* * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* * THE SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
package strman;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
@@ -118,7 +143,7 @@ public class StrmanTest {
|
||||
"foobar",
|
||||
};
|
||||
|
||||
Arrays.stream(fixture).forEach(el -> assertTrue(containsAll(el, new String[]{"FOO", "bar"})));
|
||||
Arrays.stream(fixture).forEach(el -> assertTrue(containsAll(el, new String[]{"foo", "bar"})));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -153,12 +178,12 @@ public class StrmanTest {
|
||||
|
||||
@Test
|
||||
public void countSubstr_shouldCountSubStrCountCaseInsensitiveWithoutOverlapInValue() throws Exception {
|
||||
assertThat(countSubstr("aaaAAAaaa", "aaa"), equalTo(3L));
|
||||
assertThat(countSubstr("aaaAAAaaa", "aaa", false, false), equalTo(3L));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void countSubstr_shouldCountSubStrCountCaseSensitiveWithoutOverlapInValue() throws Exception {
|
||||
assertThat(countSubstr("aaaAAAaaa", "aaa", true, false), equalTo(2L));
|
||||
assertThat(countSubstr("aaaAAAaaa", "aaa"), equalTo(2L));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -190,7 +215,7 @@ public class StrmanTest {
|
||||
"aaaaaaaf",
|
||||
"aaafaaaa"
|
||||
};
|
||||
Arrays.stream(fixture).forEach(el -> assertThat(countSubstr(el, "A"), equalTo(7L)));
|
||||
Arrays.stream(fixture).forEach(el -> assertThat(countSubstr(el, "A", false, false), equalTo(7L)));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user