我正在寻找一种简单的方法来获取字符串并将引号中的所有值放入 ArrayList
例如
The "car" was "faster" than the "other"
我想要一个包含的 ArrayList
car, faster, other
我想我可能需要使用正则表达式,但我想知道是否还有另一种更简单的方法。
最佳答案
使用正则表达式,实际上非常简单。注意:此解决方案假设不能嵌套引号:
private static final Pattern QUOTED = Pattern.compile("\"([^\"]+)\"");
// ...
public List<String> getQuotedWords(final String input)
{
// Note: Java 7 type inference used; in Java 6, use new ArrayList<String>()
final List<String> ret = new ArrayList<>();
final Matcher m = QUOTED.matcher(input);
while (m.find())
ret.add(m.group(1));
return ret;
}
正则表达式是:
" # find a quote, followed by
([^"]+) # one or more characters not being a quote, captured, followed by
" # a quote
当然,由于这是在 Java 字符串中,因此需要用引号引起来...因此该正则表达式的 Java 字符串: "\"([^\"]+)\""
.
关于java - 将引号中的所有文本放入 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17759354/