@ObehanProger

Как оставить пробелы в строке?

Функция возвращает контакты, совпадающие по имени. Контакты представляют HashMap, где ключ - это имя, а значение - это номер телефона. Имя может содержать названия профессии и пробелы, например "электрик сантехник". Проблема в том что при передаче в аргумент функции строки содержащей пробел в начале или в конце она удаляет этот пробел и выдает лишние результаты поиска, например запрос " сан" должен вернуть только "электрик сантехник", а возвращает еще и "осанка". Как предотвратить удаление пробелов, чтобы функция искала в точности то, что ей передано?
public static HashMap<String, String> searchContact(HashMap<String, String> contacts, String name) {
    if(contacts.size()>0){
        HashMap<String, String>hashArr=new HashMap<String, String>();
        for(String key: contacts.keySet()){
            if(key.contains(name)) hashArr.put(key,contacts.get(key));  
        }
        return hashArr;
    }
    return null;
}

Прошу не обращать внимания на саму задачу(откуда она взялась, нужен ли hashmap). Я только начал изучать java, а это просто задача для решения и освоения работы с hashmap.
  • Вопрос задан
  • 172 просмотра
Пригласить эксперта
Ответы на вопрос 1
xez
@xez Куратор тега Java
Senior Junior Roo
При передаче в аргумент функции строки содержащей пробел в начале или в конце эти пробелы не удаляются.
Иллюстрация:
public static void main(String[] args) {
        var contacts = Map.of("электрик сантехник", "1234",
                "осанка", "5431");


        var result = searchContact(contacts," сан");

        System.out.println(result); // {электрик сантехник=1234}

    }

    public static HashMap<String, String> searchContact(Map<String, String> contacts, String name) {
        if (contacts.size() > 0) {
            HashMap<String, String> hashArr = new HashMap<>();
            for (String key : contacts.keySet()) {
                if (key.contains(name)) hashArr.put(key, contacts.get(key));
            }
            return hashArr;
        }
        return null;
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы