– Szia Amigo!
– De Bilaabo, már köszöntél.
"Tényleg? Nos, még mindig szeretek minden leckét ezzel a kifejezéssel kezdeni."
– Ma mélyrehatóan tanuljuk a Vonós osztályt.
"De én már mindent tudok róla. Még azt is tudom, hogy a String osztály megváltoztathatatlan."
"A String osztálynak 46 metódusa van. Hányat ismer ezek közül?"
"Nem több tíznél. Valójában körülbelül 5 maximum."
– Akkor figyelj.
"A Java készítői észrevették, hogy a programokban a legtöbb karakterláncot nem módosítani kell, de néha mégis módosulnak. Nagyon bosszantó, ha létrehozol egy Stringet, elmented benne valami fontosat, átadod valaki más metódusának, és megváltozik. . Hogy ez ne forduljon elő, úgy döntöttek, hogy mind változtatható, mind megváltoztathatatlan húrokat hoznak létre."
"A String osztály a megváltoztathatatlan karakterláncokhoz, a StringBuilder osztály pedig a változtatható karakterláncokhoz való. Ezen osztályok objektumai könnyen konvertálhatók másik típusba. A Java fejlesztőknek a legtöbb esetben egyszerűen csak Stringre van szükségük, ami azt bizonyítja, hogy a Java alkotóinak igazuk volt."
"Tehát ha szükségem van egy Stringre, akkor a String osztályt használom. És ha módosítható Stringre van szükségem, akkor a StringBuilder osztályt használom ?"
"Igen. Valójában van egy másik osztály, a StringBuffer. Ez a StringBuilder másolata, kivéve, hogy minden metódusa szinkronizáltként van deklarálva , így az objektum a program különböző szálaiból elérhető."
"És mi van ezzel a példával? Itt nem változtatják meg a húrt?"
String s = "cat";
s = s + "-" + s;
"Nem. Két String objektum van itt: "cat" és "cat-cat". A második az elsővel jön létre, de az első objektum nem változik. A valóságban a dolgok sokkal érdekesebbek itt. Íme a kód a fordító a példád fordításakor generálja:"
String s = "cat";
StrinsBuilder s2 = new StringBuilder(s);
s2.append("-");
s2.append(s);
s = s2.toString();
"Tehát a StringBuildert szinte mindig használják új karakterláncok létrehozására, de néha a fordító egyszerűen elvégzi az összes munkát helyetted. De a te verziód egyszerűbb, nem gondolod?"
"Igen, fantasztikus, hogy a Java-nak ilyen fejlett fordítója van."
"Nos, most menjünk végig a String osztály metódusain:"
1) Hogyan találhatom meg a húr hosszát?
"A hossz metódus egy karakterlánc hosszát adja vissza (a benne lévő karakterek számát)."
Mód) | Példák |
---|---|
|
|
|
2) Hogyan kaphatok karaktert egy karakterláncból?
"A charAt metódus egy karaktert ad vissza egy karakterláncból az indexe alapján. A karakterindexek 0-tól kezdődnek.
Mód) | Példák |
---|---|
|
|
|
3) Hogyan szerezhetek karaktereket egy karakterláncból?
Hogyan szerezhetek karaktereket egy karakterláncból?
Mód) | Példák |
---|---|
|
|
4) Hogyan hasonlítsam össze a karakterláncokat?
"Az equals metódus ellenőrzi, hogy a karakterláncok egyeznek-e, az equalsIgnoreCase metódus pedig ellenőrzi, hogy a karakterláncok egyeznek-e, ha figyelmen kívül hagyja a kis- és nagybetűket.
Mód) | Mód) |
---|---|
|
|
|
|
5) Hogyan tudom a String összes betűjét kis- vagy nagybetűvé tenni?
"A toUpperCase metódus visszaadja a String másolatát, minden nagybetűvel."
"A toLowerCase metódus visszaadja a String másolatát, csupa kisbetűvel."
Mód) | Példák |
---|---|
|
|
Eredmény:
|
|
|
|
Eredmény:
|
6) Hogyan távolíthatom el a szóközöket egy karakterlánc elejéről és végén?
"A trim metódus egy karakterlánc másolatát adja vissza, szóköz karakterek nélkül az elején és a végén."
Mód) | Példák |
---|---|
|
|
Eredmény:
|
GO TO FULL VERSION