Létrehozza a String osztály egy példányát. A String osztály különböző adattípusokból is hozhat létre karakterláncokat. A String osztály példánya olyan könnyen létrehozható, mint egy változó, és hozzá lehet rendelni egy értéket.
String myString = "Ez egy String objektum.";
Egy String objektum létrehozható számból is. ASCII táblázat szerinti karakterláncot kapunk. A 20 számból „20” karakterlánc lesz.
String myString = (20);
A következő példa a decimális 20 HEX megfelelője 14.
String myString = (20, HEX);
A decimális 20 bináris alakja 00010100 lesz.
String myString = (20, BIN);
Az alábbi példa eredménye 20.69 lesz, a második paraméterben megadhatjuk, hogy hány tizedesjegyet jelenítsen meg, és ezt kerekítéssel teszi meg. Csak float és double adattípussal működik.
String thisString = String(20.68859, 2);
A Stringeket össze is fűzhetjük.
void setup()
{
Serial.begin(9600);
String myString1 = "Hello ";
String myString2 = "World";
String myString3 = myString1 + myString2;
Serial.println(myString3);
}
void loop()
{
}
A Stringeket össze is tudjuk hasonlítani. Az összehasonlítás különbséget tesz a kis- és nagybetűk között, vagyis a „Hello” nem egyenlő a „HELLO” Stringgel.
void setup()
{
Serial.begin(9600);
String myString1 = "Hello";
String myString2 = "HELLO";
if(myString1 == myString2)
{
Serial.println("true");
}
else
{
Serial.println("false");
}
}
void loop()
{
}
Stringeket manipulálhatunk a következő függvényekel:
charAt() A String n-dik karakterével tér vissza. Az indexelés itt is nullával kezdődik.
void setup()
{
Serial.begin(9600);
String myString = "Hello";
unsigned int n = 1;
Serial.println(myString.charAt(n));
}
void loop()
{
}
compareTo() Két karakterláncot hasonlít össze, tesztelve, hogy az egyik a másik elé vagy mögé kerül-e, vagy egyenlő-e. A karakterláncokat karakterenként összehasonlítja, a karakterek ASCII értékeivel és visszatér a köztük lévő különbség számával. Ez a szám lehet negatív szám is.
void setup()
{
Serial.begin(9600);
String myString1 = "hello";
String myString2 = "World";
int n;
n = myString1.compareTo(myString2);
Serial.println(n);
}
void loop()
{
}
concat() a paramétert hozzáfűzi egy karakterlánchoz.
String myString = "Hello";
myString.concat(" World");
endsWith() Megvizsgálja, hogy a String egy másik String karakterével végződik-e. Ha igen true-val tér vissza, ellenkező esetben false.
void setup()
{
Serial.begin(9600);
String myString1 = "Hello";
String myString2 = "o";
if(myString1.endsWith(myString2))
{
Serial.println("true");
}
else
{
Serial.println("false");
}
}
void loop()
{
}
equals() Megegyezik a korábbi példában szereplő összehasonlító operátorral „==” Az összehasonlítás különbséget tesz a kis- és nagybetűk között, vagyis a „Hello” nem egyenlő a „HELLO” Stringgel.
void setup()
{
Serial.begin(9600);
String myString1 = "Hello";
String myString2 = "HELLO";
if(myString1.equals(myString2))
{
Serial.println("true");
}
else
{
Serial.println("false");
}
}
void loop()
{
}
equalsIgnoreCase() Összehasonlítja az egyenlőség két húrját. Az összehasonlítás nem különbözteti meg a kis- és nagybetűket, vagyis a („hello”) egyenlő a („HELLO”) Stringgel.
void setup()
{
Serial.begin(9600);
String myString1 = "Hello";
String myString2 = "HELLO";
if(myString1.equalsIgnoreCase(myString2))
{
Serial.println("true");
}
else
{
Serial.println("false");
}
}
void loop()
{
}
length() Visszaadja a String karaktereinek a számát a záró nulla karakter nélkül.
String myString = "Hello World";
int length = myString.length();
Serial.println(length);
getBytes() Átmásolja a String karaktereit a paraméterben megadott „len” hosszúságú „buff” pufferbe.
String myString = "Hello World";
unsigned int len = myString.length() + 1;
byte buff[len];
myString.getBytes(buff, len);
for (int i = 0; i < len; i++)
{
Serial.println(buff[i]);
}
indexOf() Karaktert vagy Stringet keres egy másik Stringen belül. Alapértelmezés szerint a String elejétől kezdve keres, de kezdhet keresni egy adott indexből is, ha megadjuk a második paraméterben az indexet, így lehetővé téve a karakter vagy a String összes előfordulásának megtalálását.
myString.indexOf(val);
myString.indexOf(val, from);
String myString = "Hello World, Hello Arduino";
int index = myString.indexOf("Hello");
Serial.println(index);
lastIndexOf() Karaktert vagy Stringet keres egy másik Stringen belül. Alapértelmezés szerint a String végétől kezdve keres, de kezdhet keresni egy adott indextől is, ha megadjuk a második paraméterben az indexet, így lehetővé téve a karakter vagy a String összes előfordulásának megtalálását.
myString.lastIndexOf(val);
myString.lastIndexOf(val, from);
String myString = "Hello World, Hello Arduino";
int index = myString.lastIndexOf("Hello");
Serial.println(index);
remove() Eltávolítja a Stringből a karaktereket a megadott indextől a String végéig, vagy a megadott indextől a countban megadott számú indexig.
myString.remove(index);
myString.remove(index, count);
String myString = "Hello World";
myString.remove(2, 2);
Serial.println(myString);
replace() Lecseréli a myStringben a substring1 összes előfordulását a substring2-re.
String substring1 = "Arduino";
String substring2 = "World";
String myString = "Hello Arduino!";
Serial.println(myString);
myString.replace(substring1, substring2);
Serial.println(myString);
setCharAt() Beállítja a String egy karakterét az „index” pozícioban a „char” karakterrel. Nincs hatása a String meglévő hosszán kívül eső indexekre.
myString.setCharAt(index, char)
String myString = "hello world";
Serial.println(myString);
myString.setCharAt(0, 'H');
myString.setCharAt(6, 'W');
Serial.println(myString);
startsWith() Megvizsgálja, hogy egy String egy másik Stringgel kezdődik-e.
String myString = "Hello World";
String myString2 = "Hello";
if (myString.startsWith(myString2))
{
Serial.println("Ez a String Hello-val kezdődik");
}
else
{
Serial.println("Ez a String nem Hello-val kezdődik");
}
substring() Kimásol a Stringből egy substringet a kezdő indextől. Opcionális befejező indexet is megadhatunk, akkor eddig tart a substring másolása. Ha a befejező index elhagyásra kerül, akkor az substring a String végéig tart.
String myString = "Hello World";
String mySubString = myString.substring(0, 4);
Serial.println(myString);
Serial.println(mySubString);
toCharArray() Másolja a String karaktereit a buff pufferbe.
String myString = "Hello World";
byte buff[myString.length() + 1];
myString.toCharArray(buff, myString.length() + 1);
toDouble() A Stringet duplává alakítja. A Stringnek egy számjeggyel kell kezdődnie.
String myString = "41.83";
double myDouble = myString.toDouble();
toInt() Érvényes Stringet alakít át egész számra. A Stringnek egész számmal kell kezdődnie.
String myString = "36";
int myInt = myString.toInt();
toFloat() Érvényes Stringet floattá alakít. A Stringnek egy számjeggyel kell kezdődnie.
String myString = "41.83";
float myFloat = myString.toFloat();
toLowerCase() A Stringet kisbetűsre alakítja.
myString = "HELLO WORLD";
Serial.println(myString);
myString.toLowerCase();
Serial.println(myString);
toUpperCase() A Stringet nagybetűsre alakítja.
myString = "hello world";
Serial.println(myString);
myString.toUpperCase();
Serial.println(myString);
trim() Eltávolítja a String elejéről és végéről a szóközöket.
myString = " Hello World ";
Serial.println(myString.length());
myString.trim();
Serial.println(myString.length());
Ennyit a Stringekről. A következő részben az Arduino soros kommunikációt nézzük át.
