我有一个字符串变量,我想从中提取一些单词。这些单词是我需要的字段名。目前,我正在使用split方法将字符串拆分为数组。
String whereClause = "id=? AND name=?";
String[] results = whereClause.split("[=?]");
在这种情况下,我只对获取包含“id”和“name”的数组感兴趣,但我得到的是[id ,, AND name]。这也得到“”和“和”这个词。我怎样才能重建这个以完成我想要做的事情,或者有更好的方法来实现这个目标吗?
答案 0 :(得分:3)
你可以做匹配而不是分裂。
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]
答案 1 :(得分:0)
String whereClause = "id=? AND name=?";
String[] results = whereClause.split("[=?]");
System.out.println(results[0]);
System.out.println(results[2].substring(results[2].indexOf("AND")+4,results[2].length()));
试试这段代码,我只是做了给定字符串的子串
答案 2 :(得分:0)
用空格分割
String whereClause = "id=? AND name=?";
String[] results = whereClause.split(" ");
for(String tempResult : results)
{
if(tempResul.indexOf("id")=-1)
{
// do your logic here
}
//same with other name
}