summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/funcutils/StringUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'base/src/main/java/bjc/utils/funcutils/StringUtils.java')
-rw-r--r--base/src/main/java/bjc/utils/funcutils/StringUtils.java105
1 files changed, 60 insertions, 45 deletions
diff --git a/base/src/main/java/bjc/utils/funcutils/StringUtils.java b/base/src/main/java/bjc/utils/funcutils/StringUtils.java
index 62f78f5..ba4ebca 100644
--- a/base/src/main/java/bjc/utils/funcutils/StringUtils.java
+++ b/base/src/main/java/bjc/utils/funcutils/StringUtils.java
@@ -7,23 +7,24 @@ import java.util.regex.Pattern;
import com.ibm.icu.text.BreakIterator;
/**
- * Utility methods for operations on strings
+ * Utility methods for operations on strings.
*
* @author ben
- *
*/
public class StringUtils {
/**
* Check if a string consists only of one or more matches of a regular
- * expression
+ * expression.
*
* @param input
- * The string to check
+ * The string to check.
+ *
* @param rRegex
- * The regex to see if the string only contains matches
- * of
- * @return Whether or not the string consists only of multiple matches
- * of the provided regex
+ * The regex to see if the string only contains matches of.
+ *
+ * @return
+ * Whether or not the string consists only of multiple matches of
+ * the provided regex.
*/
public static boolean containsOnly(final String input, final String rRegex) {
if (input == null)
@@ -36,18 +37,19 @@ public class StringUtils {
* First, we match the beginning of the string. Then, we start a
* non-capturing group whose contents are the passed in regex.
* That group is then matched one or more times and the pattern
- * matches to the end of the string
+ * matches to the end of the string.
*/
return input.matches("\\A(?:" + rRegex + ")+\\Z");
}
/**
- * Indent the string being built in a StringBuilder n levels
+ * Indent the string being built in a StringBuilder n levels.
*
* @param builder
- * The builder to indent in
+ * The builder to indent in.
+ *
* @param levels
- * The number of levels to indent
+ * The number of levels to indent.
*/
public static void indentNLevels(final StringBuilder builder, final int levels) {
for (int i = 0; i < levels; i++) {
@@ -57,14 +59,17 @@ public class StringUtils {
/**
* Print out a deque with a special case for easily showing a deque is
- * empty
+ * empty.
*
* @param <ContainedType>
- * The type in the deque
+ * The type in the deque.
+ *
* @param queue
- * The deque to print
- * @return A string version of the deque, with allowance for an empty
- * deque
+ * The deque to print.
+ *
+ * @return
+ * A string version of the deque, with allowance for an empty
+ * deque.
*/
public static <ContainedType> String printDeque(final Deque<ContainedType> queue) {
return queue.isEmpty() ? "(none)" : queue.toString();
@@ -74,14 +79,16 @@ public class StringUtils {
* Converts a sequence to an English list.
*
* @param objects
- * The sequence to convert to an English list.
+ * The sequence to convert to an English list.
+ *
* @param join
- * The string to use for separating the last element from
- * the rest.
+ * The string to use for separating the last element from the rest.
+ *
* @param comma
- * The string to use as a comma
+ * The string to use as a comma
*
- * @return The sequence as an English list.
+ * @return
+ * The sequence as an English list.
*/
public static String toEnglishList(final Object[] objects, final String join, final String comma) {
if (objects == null) throw new NullPointerException("Sequence must not be null");
@@ -93,32 +100,25 @@ public class StringUtils {
switch (objects.length) {
case 0:
- /*
- * Empty list.
- */
+ /* Empty list. */
break;
case 1:
- /*
- * One item.
- */
+ /* One item. */
sb.append(objects[0].toString());
break;
case 2:
- /*
- * Two items.
- */
+ /* Two items. */
sb.append(objects[0].toString());
sb.append(" " + joiner + " ");
sb.append(objects[1].toString());
break;
default:
- /*
- * Three or more items.
- */
+ /* Three or more items. */
for (int i = 0; i < objects.length - 1; i++) {
sb.append(objects[i].toString());
sb.append(coma + " ");
}
+
/*
* Uncomment this to remove serial commas.
*
@@ -137,12 +137,13 @@ public class StringUtils {
* Converts a sequence to an English list.
*
* @param objects
- * The sequence to convert to an English list.
+ * The sequence to convert to an English list.
+ *
* @param join
- * The string to use for separating the last element from
- * the rest.
+ * The string to use for separating the last element from the rest.
*
- * @return The sequence as an English list.
+ * @return
+ * The sequence as an English list.
*/
public static String toEnglishList(final Object[] objects, final String join) {
return toEnglishList(objects, join, ",");
@@ -152,25 +153,30 @@ public class StringUtils {
* Converts a sequence to an English list.
*
* @param objects
- * The sequence to convert to an English list.
+ * The sequence to convert to an English list.
+ *
* @param and
- * Whether to use 'and' or 'or'.
+ * Whether to use 'and' or 'or'.
*
- * @return The sequence as an English list.
+ * @return
+ * The sequence as an English list.
*/
public static String toEnglishList(final Object[] objects, final boolean and) {
- if (and)
+ if (and) {
return toEnglishList(objects, "and");
- else return toEnglishList(objects, "or");
+ } else {
+ return toEnglishList(objects, "or");
+ }
}
/**
* Count the number of graphemes in a string.
*
* @param value
- * The string to check.
+ * The string to check.
*
- * @return The number of graphemes in the string.
+ * @return
+ * The number of graphemes in the string.
*/
public static int graphemeCount(final String value) {
final BreakIterator it = BreakIterator.getCharacterInstance();
@@ -184,6 +190,15 @@ public class StringUtils {
return count;
}
+ /**
+ * Count the number of times a pattern matches in a given string.
+ *
+ * @param value
+ * The string to count occurances in.
+ *
+ * @param pattern
+ * The pattern to count occurances of.
+ */
public static int countMatches(final String value, final String pattern) {
Matcher mat = Pattern.compile(pattern).matcher(value);