toInt()

toInt() преобразует строку типа String в число типа long, читая символы слева до первого нечислового — удобно для разбора данных из Serial или AT-команд.

Полная статья

Описание

Метод toInt() преобразует объект типа String в целое число типа long. Разбор строки идёт слева направо и останавливается, как только встречается символ, который не является частью целого числа — например, буква, точка или пробел. Всё, что было прочитано до этого момента, и становится результатом.

Если строка вообще не начинается с цифры (или знака +/- перед цифрой), метод вернёт 0.

Типичный сценарий: пользователь отправляет число через Serial Monitor в виде текста — "42", "1024", "-5". Чтобы использовать его в вычислениях, нужно превратить строку в число, и toInt() делает именно это.

Синтаксис

myString.toInt()

Параметры

myString: переменная типа String.

Возвращает

Целое число типа long, полученное из начала строки. Если строка не начинается с цифры или знака числа, возвращается 0.

Где применяется

  • Ввод с Serial Monitor: пользователь набирает число, скетч читает его как String и конвертирует в long для дальнейших расчётов.
  • Разбор ответов AT-команд или GPS-модулей: модуль возвращает строку вроде "OK+RSSI:-67dBm" — можно выделить нужный фрагмент и вызвать toInt().
  • Чтение значений из EEPROM или SD-карты, если данные хранятся в текстовом формате.
  • Парсинг простых протоколов типа "CMD:123", где число отделено от команды разделителем.

Практические замечания

  • Метод возвращает long, а не int. Если вы присваиваете результат переменной типа int, убедитесь, что значение укладывается в диапазон int вашей платформы, иначе произойдёт молчаливое усечение.
  • Строка "3.14" вернёт 3 — всё после точки игнорируется. Для дробных чисел используйте toFloat().
  • Строка " 42" (с пробелом в начале) вернёт 0, потому что первый символ — не цифра и не знак. Перед вызовом toInt() при необходимости обрезайте пробелы методом trim().
  • Строка "-15abc" вернёт -15 — знак и цифры до первого нечислового символа разбираются корректно.
  • Нулевой результат неоднозначен: он может означать как строку "0", так и строку, которая вообще не содержит числа. Если важно различать эти случаи, проверьте первый символ строки перед вызовом метода.