diff --git a/src/main/java/ffmpegconverter/Main.java b/src/main/java/ffmpegconverter/Main.java index b67a9d6..694a6e3 100644 --- a/src/main/java/ffmpegconverter/Main.java +++ b/src/main/java/ffmpegconverter/Main.java @@ -11,6 +11,8 @@ import java.util.List; import java.util.Scanner; import java.util.function.Predicate; +import static ffmpegconverter.Parser.tokenize; + /** * Converts a files or files in a folder to a web playable mp4. */ @@ -165,52 +167,6 @@ public class Main { } } - /** - * Tokenizes a string - * @param input

A string.

- * @return

A list of tokens.

- */ - private static List tokenizer(String input) { - List tokens = new ArrayList<>(); - boolean startedQuote = false; - StringBuilder currentToken = new StringBuilder(); - for (int i = 0; i < input.length(); i++) { - char c = input.charAt(i); - switch (c) { - case ' ': - if (!startedQuote) { - //If not inside "", a space marks the end of a parameter - if (!currentToken.toString().trim().equals("")) { - tokens.add(currentToken.toString()); - currentToken = new StringBuilder(); - } else { - currentToken = new StringBuilder(); - } - } else { - currentToken.append(c); - } - break; - case '"': - if (startedQuote) { - if (!currentToken.toString().trim().equals("")) { - tokens.add(currentToken.toString()); - currentToken = new StringBuilder(); - } - startedQuote = false; - } else { - startedQuote = true; - currentToken = new StringBuilder(); - } break; - default: - currentToken.append(c); - if (i == input.length() - 1) { - tokens.add(currentToken.toString()); - } break; - } - } - return tokens; - } - /** * Initializes the anime converter * @throws IOException

If reading or writing fails.

@@ -261,7 +217,7 @@ public class Main { * @return

A list of tokens.

*/ private static List readInput(int max) { - List tokens = tokenizer(READER.nextLine()); + List tokens = tokenize(READER.nextLine()); if (max < tokens.size()) { throw new IllegalArgumentException("Input contains " + tokens.size() + " arguments, but the input only supports " + max + " arguments."); diff --git a/src/main/java/ffmpegconverter/Parser.java b/src/main/java/ffmpegconverter/Parser.java new file mode 100644 index 0000000..39b7748 --- /dev/null +++ b/src/main/java/ffmpegconverter/Parser.java @@ -0,0 +1,53 @@ +package ffmpegconverter; + +import java.util.ArrayList; +import java.util.List; + +public class Parser { + + /** + * Tokenizes a string + * @param input

A string.

+ * @return

A list of tokens.

+ */ + public static List tokenize(String input) { + List tokens = new ArrayList<>(); + boolean startedQuote = false; + StringBuilder currentToken = new StringBuilder(); + for (int i = 0; i < input.length(); i++) { + char c = input.charAt(i); + switch (c) { + case ' ': + if (!startedQuote) { + //If not inside "", a space marks the end of a parameter + if (!currentToken.toString().trim().equals("")) { + tokens.add(currentToken.toString()); + currentToken = new StringBuilder(); + } else { + currentToken = new StringBuilder(); + } + } else { + currentToken.append(c); + } + break; + case '"': + if (startedQuote) { + if (!currentToken.toString().trim().equals("")) { + tokens.add(currentToken.toString()); + currentToken = new StringBuilder(); + } + startedQuote = false; + } else { + startedQuote = true; + currentToken = new StringBuilder(); + } break; + default: + currentToken.append(c); + if (i == input.length() - 1) { + tokens.add(currentToken.toString()); + } break; + } + } + return tokens; + } +}