Clase String

String() construye una instancia de la clase String que luego es tratado como un objeto. Existen múltiples versiones que construyen cadenas de diferentes tipos de datos (es decir, los formatea como secuencias de caracteres), que incluyen:

String(valor);
String(valor, base);
String(valor, decimales);

La construcción de una cadena a partir de un número da como resultado una cadena que contiene la representación ASCII de ese número. El valor predeterminado es base diez, por lo que:

String cadena = "Apuntes de Arduino"; //"Apuntes de Arduino"
String letra = String('A');    //'A' en realidad código ASCII 65
String x = String(13); //"13"
String x = String(13, BIN); //"1101"
String x = String(13, HEX); //"D"
String pi = String(1426, 4);

Es importante no confundir el tipo de dato String con la clase string. Es importante crear primero el objeto instanciando la clase y luego aplicarle un de los siguientes métodos.

1 cadena.substring()

Obtener una subcadena de una cadena. El índice inicial es inclusivo (el carácter correspondiente se incluye en la subcadena), pero el índice final opcional es exclusivo (el carácter correspondiente no está incluido en la subcadena). Si se omite el índice final, la subcadena continúa hasta el final de la cadena.

cadena.substring(desde);
cadena.substring(desde, hasta);
String data = "Altura,30,1062,7,0,300,21";
byte desde = 0;                                       
byte hasta = data.indexOf(',');   //Buscar la posición de la primera coma.
Serial.println("Cadena: " + data.substring(desde, hasta));
 
texto = "HTTP / 1.1 200 OK"; 
if (texto.substring(9) == "200 OK") { 
   Serial.println("Obtuve un OK del servidor"); 
}

2 String.concat()

Agrega el parámetro a una Cadena. Devuelve true si lo logra y false si no lo logra.

String.concat(cadena);

Los parámetros pueden ser: String, char, int, unsigned int, long, unsigned long, float o double.

3 String.charAt()

Accede a un carácter particular de la Cadena.

String.charAt(n);

4 String.compareTo()

Compara dos cadenas. La comparación distingue entre mayúsculas y minúsculas, lo que significa que la cadena "hola" no es igual a la cadena "HOLA".

String.compareTo(cadena);

5 String.equals()

Compara dos cadenas para la igualdad. La comparación distingue entre mayúsculas y minúsculas, lo que significa que la cadena "hola" no es igual a la cadena "Hola". Es lo mismo que usar ==.

String.equals(cadena);

Aqui unos ejemplos:

string texto1 = "Apuntes de Arduino";
string texto2 = "Manual de Arduino";
texto1.equals("Arduino"); //false
if (texto1.equals (texto2)) {}
//Es lo mismo que:
if (texto1 == texto2) {}

6 String.length()

Devuelve la longitud del String en caracteres. Tenga en cuenta que esto no incluye un carácter nulo final.

String.length();

Aqui unos ejemplos:

string texto = "Apuntes de Arduino";
texto.length(); //18

7 String.trim()

Eliminar todos los espacio en blanco inicial y final. A partir de 1.0, trim() modifica la cadena en lugar de devolver una nueva.

String.trim();

8 String.toLowerCase()

Obtenga una versión en minúsculas de un String. A partir de 1.0, toLowerCase() modifica la cadena en lugar de devolver una nueva.

String.toLowerCase();

9 String.toUpperCase()

Obtenga una versión en mayúscula de una cadena. A partir de 1.0, toUpperCase() modifica la cadena en lugar de devolver una nueva.

String.toUpperCase();

10 String.replace()

La función String.replace() te permite reemplazar todas las instancias de un personaje dado por otro carácter. También puede usar String.replace() para reemplazar subcadenas de String con una subcadena diferente.

String.repace(variable,cadena)

11 String.remove()

Modifique en su lugar una cadena que elimine los caracteres del índice proporcionado al final de la cadena o del índice proporcionado para indexar más el recuento.

String.remove(indice);
String.remove(indice, conteo);

12 String.indexOf()

Localiza un carácter o cadena dentro de otra cadena. De forma predeterminada, busca desde el comienzo de la Cadena, pero también puede comenzar desde un índice dado, lo que permite la localización de todas las instancias del carácter o Cadena.

String.indexOf(val);
String.indexOf(val, desde);
String data = "Altura,30,1062,7,0,300,21";   //Cadena de prueba

void setup() {
   Serial.begin(115200);                                     
   byte desde = 0;                                       
   byte hasta = data.indexOf(',');                            //Buscar la posición de la primera coma.
   Serial.println("Cadena: " + data.substring(desde, hasta)); //Extraer e imprime la primera subcadena hasta la coma.
   desde = hasta;                                             //Avanza a siguiente coma.
   for (byte i=1; i<=6; i++){
      desde++;                                                //Desplazar al siguiente carater luego de la coma.
      hasta = data.indexOf(',', desde);                       //Busca la siguiente coma.
      Serial.println("Valor " + String(i) + ": " + data.substring(desde, hasta)); //Extrae e imprime siguente subcadena.
      desde = hasta;                                          //Avanza a siguiente coma.
	}
}

void loop() {
	//Solo se ejecuta una vez.
}

13 String.lastIndexOf()

Localiza un carácter o cadena dentro de otra cadena. De forma predeterminada, busca desde el final de la Cadena, pero también puede trabajar hacia atrás desde un índice dado, lo que permite la localización de todas las instancias del carácter o Cadena.

String.lastIndexOf(val);
String.lastIndexOf(val, desde);

14 String.startsWith()

Comprueba si String inicia con los caracteres de otra cadena.

String.startsWith(cadena[,desplazamiento]);

La función startsWith() puede usarse para buscar un encabezado de mensaje particular o también se pueden usar con un desplazamiento para buscar una subcadena que comience en una posición particular.

 
texto = "HTTP / 1.1 200 OK"; 
if (texto.startsWith("200 OK", 9)) { 
	Serial.println("Obtuve un OK del servidor"); 
}

Precaución: si busca una posición que esté fuera del rango de la cadena, obtendrá resultados impredecibles. Por ejemplo, en el ejemplo anterior, texto.startsWith("200 OK", 16) no verificaría con la cadena en sí, pero lo que está en la memoria está más allá. Para obtener los mejores resultados, asegúrese de que los valores de índice que usa startsWith() y endsWith() están entre 0 y el String.length().

15 String.endsWith()

Comprueba si String termina con los caracteres de otra cadena.

String.endsWith(cadena);

La funcion endsWith() puede usarse para buscar un solo carácter al final de una cadena.

 
texto = "HTTP / 1.1 200 OK"; 
if (texto.endsWith("200 OK")) { 
	Serial.println("Obtuve un OK del servidor"); 
}

16 String.getBytes()

Copia los caracteres de la cadena al buffer provisto.

String.getBytes(buf, len);

17 String.toInt()

Convierte una cadena en entero.

string n = "12345";
int x = n.toInt();

18 String.toFloat()

Convierte una cadena en un numero flotante.

string n = "1245";
float x = n.toFloat();