1、利用StringTokenizer将输入的空格分隔的字符串识别为多个独立的字符串;
2、利用distinct关键字过滤重复的项;
3、利用like关键字实现数据库字符串过滤,配合like关键字使用是%表示任意适配的字符。
具体源代码:
import java.util.StringTokenizer;
public class SQLStringTester {
public static void main(String[] args) {
String sql = "select distinct id from dbName.tableName where";
sql = addTerms ( sql, "Java 字符串 空格分隔" );
System.out.println(sql);
}
public static String addTerms(String sql, String terms ) {
String re = new String(sql);
String addon_left = " value like '%";
String addon_right = "%'";
String addon_end = ";";
String addon_or = " or";
StringTokenizer st = new StringTokenizer(terms);
for ( int i=0; st.hasMoreTokens(); i++ )
re += (i!=0?addon_or:"") + addon_left + st.nextToken() + addon_right ;
re += addon_end;
return re;
}
}
另外一种方法则是使用String.split(String token)函数,例如,把上例中的for循环换成:
String[] result = terms.split(" ");
for ( int i=0; i<result.length; i++ )
re += (i!=0?addon_or:"") + addon_left + result[i] + addon_right ;
需要注意的是:split函数必须指名分割符,而StringTokenizer默认的分隔符就是空格。