Если я правильно понял вопрос, вы хотите удалить запись, если значение имеет буквенно-цифровой код. Например
Введите:
{temperature=35.6, pressure=1012, station_type=FM17, station_type3=FM-@17, station_type2=fm, station_type1=FM}
Ожидаемый результат:
{temperature=35.6, pressure=1012, station_type2=fm, station_type1=FM}
String onlyNumbers = "^[0-9.]*$";
String onlyAlphabets = "[a-zA-Z]*$";
final Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
final Map.Entry<String, String> entry = iterator.next();
if (!entry.getValue().matches(onlyNumbers)&&!entry.getValue().matches(onlyAlphabets)) {
iterator.remove();
}
}
или Java8
map.entrySet().removeIf(entry->!entry.getValue().matches(onlyNumbers)&&!entry.getValue().matches(onlyAlphabets));