Arduino - objeto String
O segundo tipo de string usado na programação do Arduino é o String Object.
O que é um objeto?
Um objeto é uma construção que contém dados e funções. Um objeto String pode ser criado como uma variável e receber um valor ou string. O objeto String contém funções (chamadas de "métodos" na programação orientada a objetos (OOP)) que operam nos dados de string contidos no objeto String.
O esboço e a explicação a seguir deixarão claro o que é um objeto e como o objeto String é usado.
Exemplo
void setup() {
String my_str = "This is my string.";
Serial.begin(9600);
// (1) print the string
Serial.println(my_str);
// (2) change the string to upper-case
my_str.toUpperCase();
Serial.println(my_str);
// (3) overwrite the string
my_str = "My new string.";
Serial.println(my_str);
// (4) replace a word in the string
my_str.replace("string", "Arduino sketch");
Serial.println(my_str);
// (5) get the length of the string
Serial.print("String length is: ");
Serial.println(my_str.length());
}
void loop() {
}
Resultado
This is my string.
THIS IS MY STRING.
My new string.
My new Arduino sketch.
String length is: 22
Um objeto string é criado e recebe um valor (ou string) na parte superior do esboço.
String my_str = "This is my string." ;
Isso cria um objeto String com o nome my_str e atribui a ele o valor "Esta é minha string.".
Isso pode ser comparado a criar uma variável e atribuir um valor a ela, como um inteiro -
int my_var = 102;
O esboço funciona da seguinte maneira.
Imprimindo a corda
A string pode ser impressa na janela Serial Monitor como uma string de array de caracteres.
Converter a string em maiúsculas
O objeto string my_str que foi criado possui várias funções ou métodos que podem ser operados nele. Esses métodos são chamados usando o nome do objeto seguido pelo operador ponto (.) E, a seguir, o nome da função a ser usada.
my_str.toUpperCase();
o toUpperCase() função opera na string contida no my_strobjeto que é do tipo String e converte os dados da string (ou texto) que o objeto contém em caracteres maiúsculos. Uma lista das funções que a classe String contém pode ser encontrada na referência Arduino String. Tecnicamente, String é chamada de classe e é usada para criar objetos String.
Sobrescrever uma String
O operador de atribuição é usado para atribuir uma nova string ao my_str objeto que substitui a string antiga
my_str = "My new string." ;
O operador de atribuição não pode ser usado em strings de matriz de caracteres, mas funciona apenas em objetos String.
Substituindo uma palavra na string
A função replace () é usada para substituir a primeira string passada a ela pela segunda string passada a ela. substituir () é outra função que é construída na classe String e, portanto, está disponível para uso no objeto String my_str.
Obtendo o comprimento da corda
Obter o comprimento da string é facilmente feito usando length (). No esboço de exemplo, o resultado retornado por length () é passado diretamente para Serial.println () sem usar uma variável intermediária.
Quando usar um objeto String
Um objeto String é muito mais fácil de usar do que uma matriz de caracteres de string. O objeto possui funções integradas que podem realizar várias operações em strings.
A principal desvantagem de usar o objeto String é que ele usa muita memória e pode usar rapidamente a memória RAM do Arduinos, o que pode fazer com que o Arduino trave, trave ou se comporte de forma inesperada. Se um esboço em um Arduino for pequeno e limitar o uso de objetos, não deverá haver problemas.
As strings de matriz de caracteres são mais difíceis de usar e você pode precisar escrever suas próprias funções para operar nesses tipos de strings. A vantagem é que você tem controle sobre o tamanho das matrizes de string que cria, portanto, pode mantê-las pequenas para economizar memória.
Você precisa ter certeza de não escrever além do final dos limites do array com arrays de string. O objeto String não tem esse problema e cuidará dos limites da string para você, desde que haja memória suficiente para operar. O objeto String pode tentar gravar na memória que não existe quando ficar sem memória, mas nunca gravará no final da string em que está operando.
Onde Strings são usados
Neste capítulo, estudamos sobre as strings, como elas se comportam na memória e suas operações.
Os usos práticos das strings serão cobertos na próxima parte deste curso, quando estudarmos como obter a entrada do usuário na janela Serial Monitor e salvar a entrada em uma string.