Парсинг String
- Войдите на сайт для отправки комментариев
Ср, 06/01/2021 - 22:47
Люди добрые поможите!
Я хочу распарсить строку вида к примеру. 100.50.3.5
Вот этот код парсит эту строку нормально
byte pointer0, pointer1, pointer2, pointer3; int8_t Val0, Val1, Val2, Val3; pointer0 = SSDP_Name.indexOf('.'); //finds location of first , Val0 = (SSDP_Name.substring(0, pointer0)).toInt(); //captures first data String pointer1 = SSDP_Name.indexOf('.', pointer0 + 1 ); //finds location of second , Val1 = (SSDP_Name.substring(pointer0 + 1, pointer1 + 1)).toInt(); //captures second data String pointer2 = SSDP_Name.indexOf('.', pointer1 + 1 ); Val2 = (SSDP_Name.substring(pointer1 + 1, pointer2 + 1)).toInt(); pointer3 = SSDP_Name.indexOf('.', pointer2 + 1 ); Val3 = (SSDP_Name.substring(pointer2 + 1)).toInt(); //captures remain part of data after
А вот этот почему-то выдает абракадабру. Хотя уже вроде тыщу раз его пробежал глазами, укажите пожалуйста где у меня в нем ошибка.
int value[4]; int pointer[4]; int oldPointer = 0; int i = 0; pointer[i] = SSDP_Name.indexOf("."); value[i] = (SSDP_Name.substring(oldPointer, pointer[i])).toInt(); for (int i = 1; i < 4; i++) { pointer[i] = SSDP_Name.indexOf(".", pointer[i - 1] + 1); value[i] = (SSDP_Name.substring(pointer[i - 1] + 1, pointer[i] + 1)).toInt(); }
Получилось