Extraer solo un valor

estoy probando el bluetooh del sim808, la duda es que me manda ciertos datos y yo solo preciso el que se encuentra al final de cada lista, la A, la B, la C, D, el dato llega asi

+BTSPPDATA: 1,1,A

+BTSPPDATA: 1,1,B

+BTSPPDATA: 1,1,C

+BTSPPDATA: 1,1,D

Un poco fuera de contexto no?
Recibes 4 datos, pues cuentalos y descarta los primeros 3.
No te gusta, entonces leyendo las respuestas espera aquella que termine en 1,1,D

Puedes usar la funcion en este link . https://www.arduino.cc/reference/en/language/variables/data-types/string/functions/charat/

Si los datos te llegan exactamente como lo describes (o sea, "+BTSPPDATA: 1,1," es invariable), usa substring para extraer los ultimos caracteres a partir de la posición 16.

String datosBrutos = "+BTSPPDATA: 1,1,A";
String datosExtraidos = datosBrutos.substring(16);

En otro caso y/o para hacerlo más versátil, usa lastIndexOf() para encontrar la posición de la última coma, luego usas ese valor para extraer la substring.

String datosBrutos = "+BTSPPDATA: 1,1,A";
int copiarDesde = datosBrutos.lastIndexOf(',') + 1;
String datosExtraidos = datosBrutos.substring(copiarDesde);

Recuerda que el valor de lastIndexOf() va a ser la posición de la coma, por lo tanto debes sumarle 1 para que substring() excluya la misma.
También ten presente que a lastIndexOf() debes pasarle un char como parámetro entonces debes usar comillas simples.

Saludos

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.