Diferencia entre revisiones de «objeto.toInt()»

De ArduWiki
Saltar a: navegación, buscar
(Parámetros)
(Referencias)
 
(No se muestran 16 ediciones intermedias de 2 usuarios)
Línea 4: Línea 4:
 
== Sintaxis ==
 
== Sintaxis ==
 
<pre>
 
<pre>
variable.toInt();
+
objeto.toInt();
 
</pre>
 
</pre>
  
 
== Parámetros ==
 
== Parámetros ==
;variable: variable de tipo [[String]] a evaluar.
+
;objeto: nombre de la instancia de la clase [[String]].
  
 
== Retorna ==
 
== Retorna ==
Numero tipo [[int]].
+
El valor convertido ([[long]]), o '''0''' en caso de que la cadena no empiece con una secuencia válida.
  
 
== Advertencias ==
 
== Advertencias ==
 
Nada.
 
Nada.
  
== Ejemplo ==
+
== Ejemplo 1 ==
 +
Si envias digitos por la consola se convierten en entero.
 +
 
 
<syntaxhighlight lang="c++">
 
<syntaxhighlight lang="c++">
 
String cadena = "";
 
String cadena = "";
Línea 22: Línea 24:
 
void setup(){  
 
void setup(){  
 
   Serial.begin(9600);
 
   Serial.begin(9600);
   Serial.println("\n\n Cadena toInt():");
+
   Serial.println("Cadena toInt():");  
  Serial.println();  
 
 
}  
 
}  
  
void loop ( ) {  
+
void loop() {  
 
   while (Serial.available()) {  
 
   while (Serial.available()) {  
       byte letra=Serial.read();  
+
       char caracter = Serial.read();  
       if (isDigit(c)) {  
+
       if (isDigit(caracter)) {     //Solo concatena si es dígito
        //convierte el byte entrante en un char y lo concatena a la cadena
+
         cadena += caracter;  
         cadena += (char) letra;  
 
 
       }  
 
       }  
 
       //si obtiene una nueva línea, imprima la cadena, luego el valor de la cadena
 
       //si obtiene una nueva línea, imprima la cadena, luego el valor de la cadena
       if (letra=='\n') {  
+
       if (letra == '\n') {  
 
         Serial.print("Valor:") ;  
 
         Serial.print("Valor:") ;  
 
         Serial.println(cadena.toInt());  
 
         Serial.println(cadena.toInt());  
 
         Serial.print("Cadena:");  
 
         Serial.print("Cadena:");  
 
         Serial.println(cadena);  
 
         Serial.println(cadena);  
        //borrar la cadena para la nueva entrada
+
         cadena = "" ;     //Limpia cadena para proxima lectura
         cadena = "" ;  
 
 
       }  
 
       }  
 
   }  
 
   }  
 +
}
 +
</syntaxhighlight>
 +
 +
== Ejemplo 2 ==
 +
Definida una cadena se convierte a [[int]].
 +
 +
<syntaxhighlight lang="c++">
 +
String texto = "-12345";
 +
 +
void setup(){
 +
  Serial.begin(115200);
 +
  int entero = texto.toInt();
 +
  Serial.println(entero);
 +
}
 +
 +
void loop(){
 +
  //Nada
 +
}
 +
</syntaxhighlight>
 +
 +
== Ejemplo 3 ==
 +
En este ejemplo ponemos en el monitor serie algo como: 123,456,789 y obtendremos 456 el numero entre las , es [[int]].
 +
 +
<syntaxhighlight lang="c++">
 +
void setup() {
 +
  Serial.begin(9600);
 +
}
 +
 +
void loop() {
 +
  String num = "";
 +
  while (Serial.available()){
 +
      char c = Serial.read();
 +
      num = num + c;
 +
      delay(10);
 +
  }
 +
  if (num != ""){
 +
      byte pos1 = num.indexOf(",") +1;
 +
      byte pos2 = num.indexOf(",",pos1);
 +
      int n = num.substring(pos1,pos2).toInt();
 +
      Serial.println(n);
 +
  }
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
== Vea también ==
 
== Vea también ==
* [[byte()]]
+
<categorytree mode=all>String</categorytree>
* [[int()]]
 
* [[long()]]
 
* [[float()]]
 
* [[char()]]
 
* [[getBytes()]]
 
  
 
== Referencias ==
 
== Referencias ==
* [https://www.arduino.cc/reference/es/language/functions/time/millis/ Guia de referencia de Arduino]
+
* [https://www.arduino.cc/en/Tutorial/StringToInt Guia de referencia de Arduino]
 +
* [https://www.luisllamas.es/convertir-texto-a-numero-arduino/ Convertir texto a numero] - Luis Llamas
  
[[Category:Funciones]]
+
[[Category:String]]

Revisión actual del 14:04 6 may 2019

Descripción

Convierte una cadena válida en un entero. La cadena de entrada debe comenzar con un número entero. Si la cadena contiene números no enteros, la función dejará de realizar la conversión.

Sintaxis

objeto.toInt();

Parámetros

objeto
nombre de la instancia de la clase String.

Retorna

El valor convertido (long), o 0 en caso de que la cadena no empiece con una secuencia válida.

Advertencias

Nada.

Ejemplo 1

Si envias digitos por la consola se convierten en entero.

String cadena = "";

void setup(){ 
   Serial.begin(9600);
   Serial.println("Cadena toInt():"); 
} 

void loop() { 
   while (Serial.available()) { 
      char caracter = Serial.read(); 
      if (isDigit(caracter)) {      //Solo concatena si es dígito
         cadena += caracter; 
      } 
      //si obtiene una nueva línea, imprima la cadena, luego el valor de la cadena
      if (letra == '\n') { 
         Serial.print("Valor:") ; 
         Serial.println(cadena.toInt()); 
         Serial.print("Cadena:"); 
         Serial.println(cadena); 
         cadena = "" ;     //Limpia cadena para proxima lectura
      } 
   } 
}

Ejemplo 2

Definida una cadena se convierte a int.

String texto = "-12345";
 
void setup(){
   Serial.begin(115200);
   int entero = texto.toInt();
   Serial.println(entero);
}
 
void loop(){
   //Nada
}

Ejemplo 3

En este ejemplo ponemos en el monitor serie algo como: 123,456,789 y obtendremos 456 el numero entre las , es int.

void setup() {
   Serial.begin(9600);
}

void loop() {
   String num = "";
   while (Serial.available()){
      char c = Serial.read();
      num = num + c;
      delay(10);
   }
   if (num != ""){
      byte pos1 = num.indexOf(",") +1;
      byte pos2 = num.indexOf(",",pos1);
      int n = num.substring(pos1,pos2).toInt();
      Serial.println(n);
   }
}

Vea también


Referencias