Diferencia entre revisiones de «String»
De ArduWiki
(→Referencias) |
|||
(No se muestran 28 ediciones intermedias de 2 usuarios) | |||
Línea 1: | Línea 1: | ||
== Descripción == | == Descripción == | ||
− | La clase '''String''' le permite usar y manipular cadenas de texto en formas más complejas que [[string| | + | La clase '''String''' le permite usar y manipular cadenas de texto en formas más complejas que [[string|matriz de caracteres]]. Se requiere más memoria para '''String''' que para una simple matriz de caracteres, pero es mucho mas útil por la cantidad de métodos disponibles y por la administración de memoria automática involucrada. |
== Sintaxis == | == Sintaxis == | ||
<pre> | <pre> | ||
− | objeto = String(valor); | + | String objeto = cadena; |
− | objeto = String(valor, base); | + | String objeto = String(valor); |
− | objeto = String(valor, decimales); | + | String objeto = String(valor, base); |
+ | String objeto = String(valor, decimales); | ||
</pre> | </pre> | ||
== Parametros == | == Parametros == | ||
;objeto: nombre de instancia de la clase. | ;objeto: nombre de instancia de la clase. | ||
− | ;valor: valor asignado | + | ;cadena: cadena asignada entre comillas dobles. |
+ | ;valor: valor numérico asignado. | ||
;base: base que puede ser DEC, BIN, HEX u OCT. | ;base: base que puede ser DEC, BIN, HEX u OCT. | ||
;decimales: numero de decimales que se usara | ;decimales: numero de decimales que se usara | ||
Línea 18: | Línea 20: | ||
{| class="wikitable" | {| class="wikitable" | ||
− | ! | + | |+Métodos de la clase String |
+ | !Método!!Descripción | ||
|- | |- | ||
− | |.substring( | + | |[[objeto.substring()]]||Extrae una subcadena |
|- | |- | ||
− | |.concat( | + | |[[objeto.concat()]]||Agrega (adjunta) un dato a la cadena |
|- | |- | ||
− | |.charAt( | + | |[[objeto.charAt()]]||Retorna el caracter ubicado en determinada posición |
|- | |- | ||
− | |.compareTo( | + | |[[objeto.compareTo()]]||Realiza una comparación lexicográfica (para efectos de ordenar) |
|- | |- | ||
− | |.c_str()||Retorna un puntero de [[char]] (a manera de [[string]]) como acceso directo al buffer interno | + | |[[objeto.c_str()]]||Retorna un puntero de [[char]] (a manera de [[string]]) como acceso directo al buffer interno |
|- | |- | ||
− | |.equals( | + | |[[objeto.equals()]]||Prueba igualdad entre dos cadenas |
|- | |- | ||
− | |.equalsIgnoreCase( | + | |[[objeto.equalsIgnoreCase()]]||Igual al anterior, salvo que no distingue mayúsculas |
|- | |- | ||
− | |.length()||Retorna longitud de cadena (en cantidad de caracteres) | + | |[[objeto.length()]]||Retorna la longitud de cadena (en cantidad de caracteres) |
|- | |- | ||
− | |.trim()||Elimina los espacios sobrantes a ambos lados de la cadena | + | |[[objeto.trim()]]||Elimina los espacios sobrantes a ambos lados de la cadena |
|- | |- | ||
− | |.toLowerCase()||Pasa a minúsculas | + | |[[objeto.toLowerCase()]]||Pasa a minúsculas |
|- | |- | ||
− | |.toUpperCase()||Pasa a mayúsculas | + | |[[objeto.toUpperCase()]]||Pasa a mayúsculas |
|- | |- | ||
− | |.toCharArray( | + | |[[objeto.toCharArray()]]||Copia la cadena de un lugar a otro |
|- | |- | ||
− | |.getBytes( | + | |[[objeto.getBytes()]]||Versión [[byte]] del anterior |
|- | |- | ||
− | |.replace( | + | |[[objeto.replace()]]||Reemplaza una o varias porciones de la cadena. |
|- | |- | ||
− | |.remove( | + | |[[objeto.remove()]]||Remueve una porción de la cadena |
|- | |- | ||
− | |.indexOf( | + | |[[objeto.indexOf()]]||Retorna el índice de la primera coincidencia con un caracter u otra cadena |
|- | |- | ||
− | |.lastIndexOf( | + | |[[objeto.lastIndexOf()]]||Retorna el índice de la última coincidencia con un caracter u otra cadena |
|- | |- | ||
− | |.startsWith( | + | |[[objeto.startsWith()]]||Verifica si inicia con determinada secuencia (prefijo) |
|- | |- | ||
− | |.endsWith( | + | |[[objeto.endsWith()]]||Verifica si termina con determinada secuencia (sufijo) |
|- | |- | ||
− | |.setCharAt( | + | |[[objeto.setCharAt()]]||Cambia un caracter en la cadena |
|- | |- | ||
− | |.toInt()||Convierte la cadena en [[ | + | |[[objeto.toInt()]]||Convierte la cadena en un entero [[long]] |
|- | |- | ||
− | |.toFloat()||Convierte la cadena en [[float]] | + | |[[objeto.toFloat()]]||Convierte la cadena en un punto flotante [[float]] |
|- | |- | ||
− | |.reserve( | + | |[[objeto.reserve()]]||Modifica el tamaño del buffer interno |
|} | |} | ||
+ | |||
+ | == Comentarios == | ||
+ | * La clase '''String''' forma parte del núcleo del [[IDE]] a partir de la versión 0019 y es necesario la instancia de la clase, osea crear un objetos, pero las ventajas son: muchos métodos disponibles y administración automática de memoria. | ||
+ | * Las clases String pueden contener caracteres "\0" incrustados, son más rápidas que las [[string|matrices de caracteres]] asignadas en el montón para textos breves y te protegen de los desbordamientos del búfer. | ||
== Advertencias == | == Advertencias == | ||
− | * Tenga en cuenta, que las matrices de caracteres se conocen como [[string]] con s minúscula y las instancias de la '''clase String'' es con S mayúscula. | + | * Tenga en cuenta, que las matrices de caracteres se conocen como [[string]] con s minúscula y las instancias de la '''clase String''' es con S mayúscula. |
− | * | + | * Las constantes de cadena especificadas con "comillas dobles" son tratadas como [[string|matrices de caracteres]] y no como la '''clase String'''. |
− | * | + | * [[objeto.c_str()]] debe usarse solamente para lectura, y su puntero dejar de usarse cuando el objeto '''String''' asociado sea destruido. De lo contrario ocurriría, respectivamente, corrupción en el objeto en sí o corrupción en la memoria. |
− | * | + | * [[objeto.reserve()]] afecta el tamaño del "contenedor", pero no necesariamente lo que retornará [[objeto.length()]] justo después; ya que este último cuenta la longitud real de la cadena y no la de su "contenedor" o "buffer". |
− | * | + | * [[objeto.compareTo()]] es sensible a las mayúsculas; para sobrellevar este problema, ambas cadenas tendrían que pasar por [[objeto.toLowerCase()]] o [[objeto.toUpperCase()]] de antemano. |
+ | |||
+ | == Ejemplo 1 == | ||
+ | <syntaxhighlight lang="c++"> | ||
+ | String x = String(13); //"13" | ||
+ | String x = String(13, DEC); //"13" | ||
+ | String x = String(13, BIN); //"1101" | ||
+ | String x = String(13, HEX); //"D" | ||
+ | String pi = String(31416, 4); //"3.1416" | ||
+ | </syntaxhighlight> | ||
− | == Ejemplo == | + | == Ejemplo 2 == |
− | < | + | <syntaxhighlight lang="c++"> |
− | + | String cadena = "Apuntes de Arduino"; | |
− | + | cadena.substring(8,10); //de | |
− | + | cadena.chatAt(1); //p | |
− | + | cadena.length(); //18 | |
− | + | cadena.toLowerCase(); //"apuntes de arduino" | |
− | </ | + | cadena.toUpperCase(); //"APUNTES DE ARDUINO" |
+ | </syntaxhighlight> | ||
== Vea también == | == Vea también == | ||
− | + | <categorytree mode=all>Tipo dato</categorytree> | |
− | |||
== Referencias == | == Referencias == | ||
* [https://www.arduino.cc/reference/es/language/variables/data-types/stringobject/ Guia de referencia de Arduino] | * [https://www.arduino.cc/reference/es/language/variables/data-types/stringobject/ Guia de referencia de Arduino] | ||
− | * [https://www.arduino.cc/reference/es/language/variables/data-types/string/functions/compareto/ | + | * [https://www.arduino.cc/reference/es/language/variables/data-types/string/functions/compareto/ Comparador] |
− | * [https://www.arduino.cc/reference/es/language/variables/data-types/string/functions/concat/ | + | * [https://www.arduino.cc/reference/es/language/variables/data-types/string/functions/concat/ Concatenar] |
* [http://arduino.cc/en/Reference/StringGetBytes Copiar a un buffer] | * [http://arduino.cc/en/Reference/StringGetBytes Copiar a un buffer] | ||
* [http://arduino.cc/en/Reference/StringIndexOf Localiza un caracter o string] | * [http://arduino.cc/en/Reference/StringIndexOf Localiza un caracter o string] | ||
Línea 98: | Línea 114: | ||
* [https://www.arduino.cc/reference/es/language/variables/data-types/string/functions/charat/ Accede a un caracter concreto del String] | * [https://www.arduino.cc/reference/es/language/variables/data-types/string/functions/charat/ Accede a un caracter concreto del String] | ||
* [http://arduino.cc/en/Reference/StringReserve Permite asignar un buffer en memoria para manipular strings] | * [http://arduino.cc/en/Reference/StringReserve Permite asignar un buffer en memoria para manipular strings] | ||
+ | * [https://www.luisllamas.es/convertir-texto-a-numero-arduino/ Convertir texto a numero] - Luis Llamas | ||
+ | * [http://panamahitek.com/tipos-de-datos-en-arduino-la-clase-string/ Tipo de datos: La clase String] - José Villalaz | ||
− | [[Category: | + | [[Category:String]] |
+ | [[Category:Tipo dato]] |
Revisión actual del 23:03 24 jun 2019
Contenido
Descripción
La clase String le permite usar y manipular cadenas de texto en formas más complejas que matriz de caracteres. Se requiere más memoria para String que para una simple matriz de caracteres, pero es mucho mas útil por la cantidad de métodos disponibles y por la administración de memoria automática involucrada.
Sintaxis
String objeto = cadena; String objeto = String(valor); String objeto = String(valor, base); String objeto = String(valor, decimales);
Parametros
- objeto
- nombre de instancia de la clase.
- cadena
- cadena asignada entre comillas dobles.
- valor
- valor numérico asignado.
- base
- base que puede ser DEC, BIN, HEX u OCT.
- decimales
- numero de decimales que se usara
Metodos
Método | Descripción |
---|---|
objeto.substring() | Extrae una subcadena |
objeto.concat() | Agrega (adjunta) un dato a la cadena |
objeto.charAt() | Retorna el caracter ubicado en determinada posición |
objeto.compareTo() | Realiza una comparación lexicográfica (para efectos de ordenar) |
objeto.c_str() | Retorna un puntero de char (a manera de string) como acceso directo al buffer interno |
objeto.equals() | Prueba igualdad entre dos cadenas |
objeto.equalsIgnoreCase() | Igual al anterior, salvo que no distingue mayúsculas |
objeto.length() | Retorna la longitud de cadena (en cantidad de caracteres) |
objeto.trim() | Elimina los espacios sobrantes a ambos lados de la cadena |
objeto.toLowerCase() | Pasa a minúsculas |
objeto.toUpperCase() | Pasa a mayúsculas |
objeto.toCharArray() | Copia la cadena de un lugar a otro |
objeto.getBytes() | Versión byte del anterior |
objeto.replace() | Reemplaza una o varias porciones de la cadena. |
objeto.remove() | Remueve una porción de la cadena |
objeto.indexOf() | Retorna el índice de la primera coincidencia con un caracter u otra cadena |
objeto.lastIndexOf() | Retorna el índice de la última coincidencia con un caracter u otra cadena |
objeto.startsWith() | Verifica si inicia con determinada secuencia (prefijo) |
objeto.endsWith() | Verifica si termina con determinada secuencia (sufijo) |
objeto.setCharAt() | Cambia un caracter en la cadena |
objeto.toInt() | Convierte la cadena en un entero long |
objeto.toFloat() | Convierte la cadena en un punto flotante float |
objeto.reserve() | Modifica el tamaño del buffer interno |
Comentarios
- La clase String forma parte del núcleo del IDE a partir de la versión 0019 y es necesario la instancia de la clase, osea crear un objetos, pero las ventajas son: muchos métodos disponibles y administración automática de memoria.
- Las clases String pueden contener caracteres "\0" incrustados, son más rápidas que las matrices de caracteres asignadas en el montón para textos breves y te protegen de los desbordamientos del búfer.
Advertencias
- Tenga en cuenta, que las matrices de caracteres se conocen como string con s minúscula y las instancias de la clase String es con S mayúscula.
- Las constantes de cadena especificadas con "comillas dobles" son tratadas como matrices de caracteres y no como la clase String.
- objeto.c_str() debe usarse solamente para lectura, y su puntero dejar de usarse cuando el objeto String asociado sea destruido. De lo contrario ocurriría, respectivamente, corrupción en el objeto en sí o corrupción en la memoria.
- objeto.reserve() afecta el tamaño del "contenedor", pero no necesariamente lo que retornará objeto.length() justo después; ya que este último cuenta la longitud real de la cadena y no la de su "contenedor" o "buffer".
- objeto.compareTo() es sensible a las mayúsculas; para sobrellevar este problema, ambas cadenas tendrían que pasar por objeto.toLowerCase() o objeto.toUpperCase() de antemano.
Ejemplo 1
String x = String(13); //"13"
String x = String(13, DEC); //"13"
String x = String(13, BIN); //"1101"
String x = String(13, HEX); //"D"
String pi = String(31416, 4); //"3.1416"
Ejemplo 2
String cadena = "Apuntes de Arduino";
cadena.substring(8,10); //de
cadena.chatAt(1); //p
cadena.length(); //18
cadena.toLowerCase(); //"apuntes de arduino"
cadena.toUpperCase(); //"APUNTES DE ARDUINO"
Vea también
Referencias
- Guia de referencia de Arduino
- Comparador
- Concatenar
- Copiar a un buffer
- Localiza un caracter o string
- Longitud del String
- Comprueba si comienza por una cadena que se pasa como parámetro
- Pasa de String a string
- Accede a un caracter concreto del String
- Permite asignar un buffer en memoria para manipular strings
- Convertir texto a numero - Luis Llamas
- Tipo de datos: La clase String - José Villalaz