Не получается преобразовать строку в int после парсинга. Java

Написал код, который парсит температуру с сайта. Потом захотел преобразовать эту температуру в int. Но перепробовав разные функции преобразования, у меня все время выскакивает ошибка. При этом если самому создать String и потом преобразовать в int, то все работает.

Метод для парсинга и преобразования и ошибку прикрепляю ниже:

 public int getTemperatureFromGisMeteo() {
    String currentTemperature = "1";
    try {
        Document document = Jsoup.connect("https://www.gismeteo.ru/weather-novosibirsk-4690/").get();
        String titleElement = document.title();
        Element element = document.getElementsByClass("unit unit_temperature_c").first();
        currentTemperature = element.text();

    } catch (Exception e) {

        e.printStackTrace();
    }
    return Integer.parseInt(currentTemperature);
}

Ошибка следующая:

Exception in thread "main" java.lang.NumberFormatException: For input string: "−22"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at ParsingData.getTemperatureFromGisMeteo(ParsingData.java:22)
at WeatherStation.main(WeatherStation.java:15)

Ответы (1 шт):

Автор решения: insolor

В полученной строке в переменной currentTemperature не обычный минус, а юникодный "\u2212", Integer.parseInt такое не понимает. Для сравнения в строке поиска на сайте https://unicode-table.com введите минус с клавиатуры (получите https://unicode-table.com/ru/002D/) и скопируйте и вставьте минус из текста ошибки (получите https://unicode-table.com/ru/2212/)

Сделайте перед конвертацией в Integer замену на обычный минус:

return Integer.parseInt(currentTemperature.replace("\u2212", "-")
→ Ссылка