diff options
author | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2019-03-08 04:56:49 +0000 |
---|---|---|
committer | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2019-03-08 04:56:49 +0000 |
commit | 40644c9f57ce7a931d9d955529583cc1cba623a5 (patch) | |
tree | ad213db533bacc76cef7a07d9874bd21cb87ede4 /src/Java/gtPlusPlus/core/util/data | |
parent | 86c8b91b00624c7b1824b6b75290ed383338e48f (diff) | |
download | GT5-Unofficial-40644c9f57ce7a931d9d955529583cc1cba623a5.tar.gz GT5-Unofficial-40644c9f57ce7a931d9d955529583cc1cba623a5.tar.bz2 GT5-Unofficial-40644c9f57ce7a931d9d955529583cc1cba623a5.zip |
+ Added ItemPackage.java. Allows better load control of item/recipe groupings.
$ Improved load handling of Chemistry Packages.
$ Fixed bug in StringUtils.java.
Diffstat (limited to 'src/Java/gtPlusPlus/core/util/data')
-rw-r--r-- | src/Java/gtPlusPlus/core/util/data/StringUtils.java | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/src/Java/gtPlusPlus/core/util/data/StringUtils.java b/src/Java/gtPlusPlus/core/util/data/StringUtils.java index 2821a0c1c9..2372d04c15 100644 --- a/src/Java/gtPlusPlus/core/util/data/StringUtils.java +++ b/src/Java/gtPlusPlus/core/util/data/StringUtils.java @@ -1,6 +1,8 @@ package gtPlusPlus.core.util.data; +import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; +import gtPlusPlus.core.util.Utils; public class StringUtils { @@ -134,19 +136,62 @@ public class StringUtils { } } + + + /** + * Is this a special regex character for delimination? (.$|()[]{}^?*+\\) + * @param aChar - The char to test + * @return - Is this a special character? + */ + public static boolean isSpecialCharacter(char aChar) { + if (aChar == '"' || aChar == '.' || aChar == '$' || aChar == '|' || aChar == '(' || aChar == ')' || aChar == '[' + || aChar == ']' || aChar == '{' || aChar == '}' || aChar == '^' || aChar == '?' || aChar == '*' + || aChar == '+' || aChar == '\\') { + return true; + } + return false; + } + + public static boolean isEscaped(String aString) { + return aString.substring(0, 1).equals("\\"); + } + public static String splitAndUppercase(String aInput, String aDelim) { + + if (!isEscaped(aDelim)) { + boolean isSpecial = false; + for (int o=0;o<aInput.length();o++) { + if (isSpecialCharacter(aInput.charAt(o))) { + isSpecial = true; + } + } + if (isSpecial) { + aDelim = "\\"+aDelim; + } + } + + + Logger.INFO("Splitting "+aInput); String[] aSplit = aInput.split(aDelim); + Logger.INFO("Split into "+aSplit == null ? ""+0 : aSplit.length+" parts."); if (aSplit == null || aSplit.length == 0) { return aInput; } else { AutoMap<String> aTemp = new AutoMap<String>(); for (String s : aSplit) { - aTemp.put(firstLetterCaps(s)); + Logger.INFO("Found: "+s); + s = s.replace(".", ""); + s = Utils.sanitizeString(s); + s = firstLetterCaps(s); + Logger.INFO("Formatted & Captilized: "+s); + aTemp.put(s); } + Logger.INFO("Rebuilding"); String aReturn = ""; for (String s : aTemp) { aReturn += s; + Logger.INFO("Step: "+aReturn); } return aReturn; } |