二重引用符で囲まれた文字列値、たとえば「HomeLone」をJavaで返そうとしています。UIとデータベースの内容を一致させるためのテストスクリプトを作成しています。これがサンプルコードです
public String getMonitorKeywords(String keywords1, String keywords2, String keywords3) {
String words = "";
if (keywords2 != null && keywords1 == null && keywords3 == null) {
return words = keywords2.replaceAll("\\s+", " AND ");
}
else if(keywords2 == null && keywords1 == null && keywords3 != null){
keywords2 = keywords3.replaceAll("\\s+", " OR ");
words = keywords3;
Util.println("From databse we have third keywords{}: " + words);
return words;
}
else if(keywords2 != null && keywords1 != null && keywords3 == null){
words = keywords1;
Util.println("From databse we have first keywords{}: " + words);
return words;
}
else if(keywords2 == null && keywords1 != null && keywords3 == null){
words = keywords1;
return words;
}
else {
return null;
}
}
私の方法の問題点です。keywords2に二重引用符{""}が含まれる単語がある場合、ANDがインクリメントされ、特定の単語セットには必要ありません。おかげで、引用符でそのような単語を除外するための正規表現と関係があることを知っています。すべての単語に引用符が付いているわけではありません。