字符串分词器(双引号和空格)
String Tokenizer (Double Quotes and Whitespace)
我正在尝试实现一种方法来为我正在构建的相册获取参数。但是,我很难弄清楚如何标记输入。
两个示例输入:
addPhoto "DSC_017.jpg" "DSC_017" "Fall colors"
addPhoto "DSC_018.jpg" "DSC_018" "Colorado Springs"
我想将此输入 return 一个包含 4 个元素的字符串数组,其中
- 字符串 s[1]="addPhoto"
- 字符串 s[2]="DSC_017.jpg"
- 字符串 s[3]="DSC_017"
- 字符串 s[4] = "Fall colors"
我查看了 StringTokenizer 和 String.split,但我不确定如何设置分隔符。
您可能希望从命令行参数中提取这些参数,shell 将为您进行引号处理。但是,您一次只能执行一个添加照片操作。
如果您做不到,您可以尝试以下答案之一:
- http://www.source-code.biz/snippets/java/5.htm
- Parsing quoted text in java
- Split a quoted string with a delimiter
- Tokenizing a String but ignoring delimiters within quotes
String line = "addPhoto \"DSC_018.jpg\" \"DSC_018\" \"Colorado Springs\"";
String[] pieces = line.split(" \"");
for (String p : pieces) {
System.out.println(p.replaceAll("\"", ""));
}
我正在尝试实现一种方法来为我正在构建的相册获取参数。但是,我很难弄清楚如何标记输入。
两个示例输入:
addPhoto "DSC_017.jpg" "DSC_017" "Fall colors"
addPhoto "DSC_018.jpg" "DSC_018" "Colorado Springs"
我想将此输入 return 一个包含 4 个元素的字符串数组,其中
- 字符串 s[1]="addPhoto"
- 字符串 s[2]="DSC_017.jpg"
- 字符串 s[3]="DSC_017"
- 字符串 s[4] = "Fall colors"
我查看了 StringTokenizer 和 String.split,但我不确定如何设置分隔符。
您可能希望从命令行参数中提取这些参数,shell 将为您进行引号处理。但是,您一次只能执行一个添加照片操作。
如果您做不到,您可以尝试以下答案之一:
- http://www.source-code.biz/snippets/java/5.htm
- Parsing quoted text in java
- Split a quoted string with a delimiter
- Tokenizing a String but ignoring delimiters within quotes
String line = "addPhoto \"DSC_018.jpg\" \"DSC_018\" \"Colorado Springs\"";
String[] pieces = line.split(" \"");
for (String p : pieces) {
System.out.println(p.replaceAll("\"", ""));
}