bool isNumberRelatedChar(char c) { return (isDigit(c) || (c == '.') || (c == '+') || (c == '-')); } int parseNextNumberFromString(String text_buffer, int start_ind, float &value) { //find start of number while (!isNumberRelatedChar(text_buffer[start_ind])) start_ind++; //find end of number int end_ind = start_ind; while (isNumberRelatedChar(text_buffer[end_ind])) end_ind++; //extract number value = text_buffer.substring(start_ind, end_ind).toFloat(); return end_ind; }