1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.gwe.utils.cmd;
18
19 import java.util.ArrayList;
20 import java.util.List;
21
22
23
24
25
26 public class OptionParser {
27
28 private List<String> parts;
29
30 public OptionParser(String prefix, String arg, char... separators) {
31 parts = new ArrayList<String>(separators.length + 1);
32
33 if (arg == null || !arg.startsWith(prefix)) return;
34
35 String partsArg = arg.substring(prefix.length());
36 for (int idx = separators.length - 1; idx >= 0; idx--) {
37 String value = null;
38 int sepIndex = partsArg.lastIndexOf(separators[idx]);
39 if (sepIndex != -1) {
40 value = partsArg.substring(sepIndex + 1);
41 partsArg = partsArg.substring(0, sepIndex);
42 }
43 parts.add(0, value);
44 }
45 parts.add(0, partsArg);
46 }
47
48 public String getEle(int index, String defaultValue) {
49 if (index > parts.size() - 1) return defaultValue;
50 String result = parts.get(index);
51 return (result != null && !"".equals(result)) ? result : defaultValue;
52 }
53
54 public static void main(String[] args) {
55 OptionParser parser = new OptionParser("prefix=", "prefix=alfa:gama:delta@whatever-now:end", new char[]{':', ':', '@', '-', ':'});
56 System.out.println(parser.getEle(0, null));
57 System.out.println(parser.getEle(1, null));
58 System.out.println(parser.getEle(2, null));
59 System.out.println(parser.getEle(3, null));
60 System.out.println(parser.getEle(4, null));
61 System.out.println(parser.getEle(5, null));
62 System.out.println(parser.getEle(6, null));
63 System.out.println(parser.getEle(7, null));
64 }
65 }
66