java - 使用拆分方法从单个字符串中提取字段名称

标签 java string

我有一个字符串变量,我想从中提取一些单词。这些词是我将需要的字段名称。目前,我正在使用 split 方法将字符串拆分为数组。

String whereClause = "id=? AND name=?";
String[] results = whereClause.split("[=?]");

在这种情况下,我只对获取包含“id”和“name”的数组感兴趣,但我得到的是 [id, , AND name]。这也得到“”和单词“AND”。我如何重建它以完成我正在尝试做的事情,或者是否有更好的方法来完成它?

最佳答案

您可以进行匹配而不是拆分。

String s = "id=? AND name=?";
Matcher m = Pattern.compile("[^\\s=?]+(?=[=?])").matcher(s);
while(m.find()){
System.out.println(m.group());
}

[^\\s=?]+ 匹配任何字符,但不匹配空格或 =? 字符,一个或多个次。

输出:

id
name

创建一个新的数组列表,然后将匹配的结果附加到它。

ArrayList<String> list = new ArrayList<String>();
String s = "id=? AND name=?";
Matcher m = Pattern.compile("[^\\s=?]+(?=[=?])").matcher(s);
while(m.find()){
list.add(m.group());
}
System.out.println(list);

输出:

[id, name]

关于java - 使用拆分方法从单个字符串中提取字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29024168/

相关文章:

string - Golang 数字的字母表示

java - java中的sun.security.action.GetPropertyAction类

c++ - printf() 混淆 - 尝试打印字符串时打印 (null) 并在打印缓冲区时打印正确的值

php - 在没有 Eval 的情况下在字符串中执行 PHP 代码

java - Compass Lucene 来袭

java - android studio 项目到 javaFX?

Java - JProgressBar 不会更改值,JLabel 不会更改文本

java - Eclipse 类文件元数据

java - 在新的 Material DatePicker 中设置标题颜色

Javascript对象数组转字符串