summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/funcutils/StringUtils.java
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-10-16 06:11:39 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-10-16 06:11:39 -0300
commitd2be5b73d7a5653ad5c8273c17284346baa6f1c7 (patch)
tree9d3c6adb193f53588bd5d004fdf80c0381685351 /base/src/main/java/bjc/utils/funcutils/StringUtils.java
parent0308029629a12711b849ea7765639b9b1f9e03d2 (diff)
parentd1d01769e7c55f7f62dc01cadf420d5f63424584 (diff)
Merge branch 'master' of github.com:bculkin2442/bjc-utils2
Diffstat (limited to 'base/src/main/java/bjc/utils/funcutils/StringUtils.java')
-rw-r--r--base/src/main/java/bjc/utils/funcutils/StringUtils.java216
1 files changed, 0 insertions, 216 deletions
diff --git a/base/src/main/java/bjc/utils/funcutils/StringUtils.java b/base/src/main/java/bjc/utils/funcutils/StringUtils.java
index 8e75f79..7a4ee20 100644
--- a/base/src/main/java/bjc/utils/funcutils/StringUtils.java
+++ b/base/src/main/java/bjc/utils/funcutils/StringUtils.java
@@ -254,220 +254,4 @@ public class StringUtils {
}
return strings;
}
-
- public static boolean levelContains(String haystack, String... needles) {
- int nestLevel = 0;
- int i = 0;
-
- boolean prevCharWasSlash = false;
- boolean inString = false;
-
- char stringEnder = ' ';
-
- while(i < haystack.length()) {
- if(inString == false && nestLevel == 0) {
- for(String needle : needles) {
- if(haystack.regionMatches(i, needle, 0, needle.length())) {
- return true;
- }
- }
- }
-
- if(inString) {
- if(prevCharWasSlash == true) {
- prevCharWasSlash = false;
- } else if (haystack.charAt(i) == stringEnder) {
- inString = false;
- }
- } else {
- switch(haystack.charAt(i)) {
- case '\'':
- inString = true;
- stringEnder = '\'';
- break;
- case '\"':
- inString = true;
- stringEnder = '\"';
- break;
- case '(':
- case '[':
- case '{':
- case '<':
- nestLevel += 1;
- break;
- case ')':
- case ']':
- case '}':
- case '>':
- nestLevel = Math.max(0, nestLevel - 1);
- break;
- }
- }
-
- i += 1;
- }
-
- return false;
- }
-
- public static List<String> levelSplit(String phrase, String... splits) {
- return levelSplit(phrase, false, splits);
- }
-
- public static List<String> levelSplit(String phrase, boolean keepDelims, String... splits) {
- String work = phrase;
-
- List<String> strangs = new ArrayList<>();
-
- int nestLevel = 0;
- int i = 0;
-
- boolean prevCharWasSlash = false;
- boolean inString = false;
-
- char stringEnder = ' ';
-
- // Shortcut empty strings
- if(phrase.equals("")) {
- strangs.add("");
-
- return strangs;
- }
-
- while(i < work.length()) {
- if(inString == false && nestLevel == 0) {
- for(String split : splits) {
- if(work.regionMatches(i, split, 0, split.length())) {
- strangs.add(work.substring(0, i));
-
- if(keepDelims) strangs.add(split);
-
- work = work.substring(i + split.length());
- i = 0;
-
- continue;
- }
- }
- }
-
- if(inString) {
- if(prevCharWasSlash == true) {
- prevCharWasSlash = false;
- } else if (work.charAt(i) == stringEnder) {
- inString = false;
- }
- } else {
- /*
- * @TODO Ben Culkin 9/4/18
- *
- * This currently crashes if the string ends
- * with one of the delimiters in question.
- */
- switch(work.charAt(i)) {
- case '\'':
- inString = true;
- stringEnder = '\'';
- break;
- case '\"':
- inString = true;
- stringEnder = '\"';
- break;
- case '(':
- case '[':
- case '{':
- case '<':
- nestLevel += 1;
- break;
- case ')':
- case ']':
- case '}':
- case '>':
- nestLevel = Math.max(0, nestLevel - 1);
- break;
- }
- }
-
- i += 1;
- }
-
- strangs.add(work);
-
- return strangs;
- }
-
- public static List<String> levelSplitRX(String phrase, String patt) {
- return levelSplit(phrase, false, patt);
- }
-
- // @TODO @FIXME
- //
- // This doesn't seem like its working
- public static List<String> levelSplitRX(String phrase, boolean keepDelims, String patt) {
- Pattern pat = Pattern.compile(patt);
-
- String work = phrase;
- Matcher mat = pat.matcher(work);
-
- List<String> strangs = new ArrayList<>();
-
- int nestLevel = 0;
- int i = 0;
-
- boolean prevCharWasSlash = false;
- boolean inString = false;
-
- char stringEnder = ' ';
-
- while(i < work.length()) {
- if(inString == false && nestLevel == 0) {
- if(mat.find(i)) {
- strangs.add(work.substring(0, i));
- if(keepDelims) strangs.add(mat.group());
- work = work.substring(mat.end());
- i = 0;
-
- mat = pat.matcher(work);
-
- continue;
- }
- }
-
- if(inString) {
- if(prevCharWasSlash == true) {
- prevCharWasSlash = false;
- } else if (work.charAt(i) == stringEnder) {
- inString = false;
- }
- } else {
- switch(work.charAt(i)) {
- case '\'':
- inString = true;
- stringEnder = '\'';
- break;
- case '\"':
- inString = true;
- stringEnder = '\"';
- break;
- case '(':
- case '[':
- case '{':
- case '<':
- nestLevel += 1;
- break;
- case ')':
- case ']':
- case '}':
- case '>':
- nestLevel = Math.max(0, nestLevel - 1);
- break;
- }
- }
-
- i += 1;
- }
-
- strangs.add(work);
-
- return strangs;
- }
}