我需要将我的字符串拆分为3个 args ,每个 arg 都在引号内,并将它们存储在单独的变量中。
这就是我所拥有的。下面的代码获取所有命令行参数,并将它们组合成一个大的<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281438586869.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281439101401.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281439283119.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281439479213.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281440090151.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281440244369.jpg\" /> \r\n</p>
。
我需要转换的字符串示例:
String
应该成为:
“METRO Blue Line” “Target Field Station Platform 1” “south”
我已经尝试了var1 = METRO Blue Line
var2 = Target Field Station Platform 1
var3 = south
,但无论出于什么原因,它甚至都不会删除我的引号。
split("\"")
答案 0 :(得分:1)
您使用的是弯曲引号(又名智能引号)标记,而不是在代码中进行记帐
if __name__ == __main__
答案 1 :(得分:1)
符号”
和“
与符号"
不同。如果您使用split("\"")
进行拆分,则显然会搜索"
,但不会搜索其他引号符号”
和“
。
您可以使用Matcher
及其find
方法轻松提取它们。或者,也可以使用正确的分隔符:split("” “")
来使用拆分方法。请注意,第一个和最后一个元素将具有单引号,只需将其删除即可。
String input = "“METRO Blue Line” “Target Field Station Platform 1” “south”";
String[] elements = input.split("” “");
// Remove first quote
elements[0] = elements[0].substring(1);
// Remove last quote
String lastElement = elements[elements.length - 1];
elements[elements.length - 1] = lastElement.substring(0, lastElement.length() - 1);
// Output all results
for (String element : elements) {
System.out.println(element);
}
输出结果为:
METRO Blue Line
Target Field Station Platform 1
south
这种方法的一个优点是它非常高效,没有额外的替换或类似的东西,只需对输入进行一次迭代,仅此而已。
答案 2 :(得分:0)
为了与原始答案的RegEx主题保持一致,我重写了我的答案,以找到正常的引号或智能引号。
String text = "“METRO Blue Line” “Target Field Station Platform 1” “south”";
String regex = "\"([^\"]*)\"|“([^”]*)”";
ArrayList<String> listOfStrings = new ArrayList<>();
Matcher m = Pattern.compile(regex).matcher(text);
while (m.find()) {
if (m.group(1) != null) {
listOfStrings.add(m.group(1));
}
if (m.group(2) != null) {
listOfStrings.add(m.group(2));
}
}
for (String temp : listOfStrings) {
System.out.println(temp);
}
答案 3 :(得分:0)
您可以使用java 8中的String.join()。代码示例
String[] strArray = { "How", "To", "Do", "In", "Java" };
String joinedString = String.join(", ", strArray);System.out.println(joinedString);
输出:
How,To,Do,In,Java