Лишних символов нет, значения null отсекаются:
public static void main(String[] args) {
Map<String, String> testMap = new LinkedHashMap<>();
testMap.put("name", "Ivanov");
testMap.put("country", "Ukraine");
testMap.put("city", "Kiev");
testMap.put("age", null);
System.out.println(getQuery(testMap));
}
Вывод: name = 'Ivanov' and country = 'Ukraine' and city = 'Kiev'package com.javarush.task.task22.task2208;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
/*
Формируем WHERE
*/
public class Solution {
public static void main(String[] args) {
}
public static String getQuery(Map<String, String> params) {
String result = "";
StringBuilder str = new StringBuilder(result);
for(Map.Entry<String, String > entry : params.entrySet()) {
if (entry.getValue()!=null) {
str.append(entry.getKey() + " = " + "'" + entry.getValue() + "'" + " " + "and ");
} else result = str.toString().substring(0, str.toString().lastIndexOf(" and"));
}
return result;
}
}