diff options
| author | bjculkin <bjculkin@mix.wvu.edu> | 2017-03-17 08:33:37 -0400 |
|---|---|---|
| committer | bjculkin <bjculkin@mix.wvu.edu> | 2017-03-17 08:33:37 -0400 |
| commit | a63c30f5fe9ee302e73bb30e35095d789adb1a80 (patch) | |
| tree | 8bb952e6c4f61172597e945f58d8244c24ea88b0 /BJC-Utils2/src/main/java/bjc/utils/funcutils/StringUtils.java | |
| parent | 897c15c70a6b11463686293893518bd9b4d5c29c (diff) | |
Refactor StringUtils
Moved a bunch of token-oriented stuff from StringUtils to a new TokenUtils
class.
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/funcutils/StringUtils.java')
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/funcutils/StringUtils.java | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcutils/StringUtils.java b/BJC-Utils2/src/main/java/bjc/utils/funcutils/StringUtils.java index 77fec7e..a7b4436 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcutils/StringUtils.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcutils/StringUtils.java @@ -1,10 +1,6 @@ package bjc.utils.funcutils; import java.util.Deque; -import java.util.LinkedList; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; /** * Utility methods for operations on strings @@ -14,25 +10,6 @@ import java.util.regex.Pattern; */ public class StringUtils { /** - * Checks if the given expression contains the specified operator in a - * situation that indicates its use as an infix operator. - * - * @param expression - * The expression to check - * @param operator - * The operator to see if it is contained - * @return Whether or not the given expression contains the specified - * operator as a infix operator - */ - public static boolean containsInfixOperator(String expression, String operator) { - // Bit annoying to have to use a full class name, but what are - // you - // going to do? - return org.apache.commons.lang3.StringUtils.countMatches(expression, operator) == 1 - && !expression.equalsIgnoreCase(operator) && !expression.startsWith(operator); - } - - /** * Check if a string consists only of one or more matches of a regular * expression * @@ -89,155 +66,6 @@ public class StringUtils { return queue.isEmpty() ? "(none)" : queue.toString(); } - /* - * This regex matches java-style string escapes - */ - private static String escapeString = "\\\\([btnfr\"'\\\\]" // Match - // shortform - // escape - // sequences - // like - // \t - // or - // \" - + "|[0-3]?[0-7]{1,2}" // Match - // octal - // escape - // sequences - + "|u[0-9a-fA-F]{4})"; // Match - // unicode - // escape - // sequences - private static Pattern escapePatt = Pattern.compile(escapeString); - - /* - * This regular expression matches java style double quoted strings - */ - private static Pattern doubleQuotePatt = Pattern.compile("(\"(" + "[^\\\\\"]+" // Match - // one - // or - // more - // characters - // that - // aren't - // quotes - // or - // slashes - + "|" + escapeString + ")" // Match escape sequences - + "*\")"); // Match all of those things zero or more - // times, followed by a closing quote - - /** - * Remove double quoted strings from a string. - * - * Splits a string around instances of java-style double-quoted strings. - * - * @param inp - * The string to split. - * - * @return An list containing alternating bits of the string and the - * embedded double-quoted strings that seperated them. - */ - public static List<String> removeDQuotedStrings(String inp) { - StringBuffer work = new StringBuffer(); - List<String> res = new LinkedList<>(); - - Matcher mt = doubleQuotePatt.matcher(inp); - - while(mt.find()) { - mt.appendReplacement(work, ""); - - res.add(work.toString()); - res.add(mt.group(1)); - - work = new StringBuffer(); - } - mt.appendTail(work); - res.add(work.toString()); - - return res; - } - - /** - * Replace escape characters with their actual equivalents. - * - * @param inp - * The string to replace escape sequences in. - * - * @return The string with escape sequences replaced by their equivalent - * characters. - */ - public static String descapeString(String inp) { - StringBuffer work = new StringBuffer(); - - Matcher escapeFinder = escapePatt.matcher(inp); - while(escapeFinder.find()) { - String escapeSeq = escapeFinder.group(); - - String escapeRep = ""; - switch(escapeSeq) { - case "\\b": - escapeRep = "\b"; - break; - case "\\t": - escapeRep = "\t"; - break; - case "\\n": - escapeRep = "\n"; - break; - case "\\f": - escapeRep = "\f"; - break; - case "\\r": - escapeRep = "\r"; - break; - case "\\\"": - escapeRep = "\""; - break; - case "\\'": - escapeRep = "'"; - break; - case "\\\\": - escapeRep = "\\"; - break; - default: - if(escapeSeq.startsWith("u")) { - escapeRep = handleUnicodeEscape(escapeSeq.substring(1)); - } else { - escapeRep = handleOctalEscape(escapeSeq); - } - } - - escapeFinder.appendReplacement(work, escapeRep); - } - - escapeFinder.appendTail(work); - - return work.toString(); - } - - private static String handleUnicodeEscape(String seq) { - int codepoint = Integer.parseInt(seq, 16); - - return new String(Character.toChars(codepoint)); - } - - private static String handleOctalEscape(String seq) { - int codepoint = Integer.parseInt(seq, 8); - - return new String(Character.toChars(codepoint)); - } - - public static boolean isDouble(String inp) { - return DoubleMatcher.floatingLiteral.matcher(inp).matches(); - } - - private static Pattern intLitPattern = Pattern.compile("\\A[+\\-]?\\d+\\Z"); - - public static boolean isInt(String inp) { - return intLitPattern.matcher(inp).matches(); - } - /** * Converts a sequence to an English list. * |
