diff options
Diffstat (limited to 'base/src/main/java/bjc/utils/funcutils/StringUtils.java')
| -rw-r--r-- | base/src/main/java/bjc/utils/funcutils/StringUtils.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/base/src/main/java/bjc/utils/funcutils/StringUtils.java b/base/src/main/java/bjc/utils/funcutils/StringUtils.java index 0080dd1..1d0b060 100644 --- a/base/src/main/java/bjc/utils/funcutils/StringUtils.java +++ b/base/src/main/java/bjc/utils/funcutils/StringUtils.java @@ -1,9 +1,14 @@ package bjc.utils.funcutils; +import java.util.ArrayList; import java.util.Deque; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; +import bjc.utils.data.BooleanToggle; +import bjc.utils.parserutils.TokenUtils; + import com.ibm.icu.text.BreakIterator; /** @@ -224,4 +229,29 @@ public class StringUtils { return strang.substring(0, strang.indexOf(vx)); } + + /** + * Split a line into a series of space-separated arguments, including + * string literals. + * + * @param com + * The command to split from + * @return The split arguments. + */ + public static List<String> processArguments(String com) { + List<String> strings = new ArrayList<>(); + + BooleanToggle togg = new BooleanToggle(); + + for(String strang : TokenUtils.removeDQuotedStrings(com)) { + if(togg.get()) { + strings.add(TokenUtils.descapeString(strang)); + } else { + for(String strung : strang.split("\\s+")) { + strings.add(strung); + } + } + } + return strings; + } } |
