sâmbătă, 3 ianuarie 2026

Clasa StringTokenizer în Java

Clasa StringTokenizer este o clasă din pachetul: java.util ceea ce înseamnă că pentru a o utiliza este nevoie ca aplicația noastră să importe acest pachet. 

Ea este utilizată pentru a împărți un șir de caractere (String) în bucăți mai mici, numite token-uri, folosind un separator (spațiu, virgulă, punct etc.).

Constructorii acestei clase sunt:
StringTokenizer(String str, String delim, boolean returnSimbol)
StringTokenizer(String str, String delim)
StringTokenizer(String str)
Să examinăm un pic parametrii constructorilor:
- str specifică șirul de caractere pe care trebuie separat.
- delim specifică o listă de caractere de delimitare. De exemplu, un argument delim "!?" indică faptul că delimitatorii sunt semnul exclamării și semnul întrebării. În mod implicit, clasa StringTokenizer stabilește ca delimitator caracterele "\t\n\r" care corespund unui spațiu de tabulare, unui caracter de linie nouă și unui caracter retur de car.
- returnSimbol stabilește dacă delimitatorul va fi sau nu returnat. Pentru valoarea true acesta va fi luat în calcul la afișarea valorii , adică vom obține numărul de cuvinte plus numărul de delimitatori. Implicit, metoda nu returnează delimitatorul ca simbol.

Pentru a crea un șir de caractere de acest tip se va instanția clasa StringTokenizer prin sintaxa:
StringTokenizer numeString = new StringTokenizer(" valoare ");
De exemplu: StringTokenizer zi = new StringTokenizer (”Luni”);

Pentru a putea opera cu șirul de caractere este necesar să cunoaștem metodele acestei clase: 

1. int countTokens() – va returna numărul de cuvinte dintr-un string.

De exemplu: 
import java.util.*;
class Testare{
public static void main(String [] args){
StringTokenizer st = new StringTokenizer("Programam in limbajul Java");
System.out.println(st.countTokens()); //4

StringTokenizer st1 = new StringTokenizer("Programam in,limbajul Java",",");
System.out.println(st1.countTokens()); //2

StringTokenizer st2 = new StringTokenizer("Programam in,limbajul, Java",",",true);
System.out.println(st2.countTokens()); //5
}}

2. boolean hasMoreTokens() – va returna true dacă în șirul de caractere este măcar un cuvânt;

3. String nextToken() – returnează următorul cuvânt din șirul de caratere.

De exemplu: 
import java.util.*;
class Testare{
public static void main(String [] args){
StringTokenizer st = new StringTokenizer("Programam in Java");
System.out.println("Total cuvinte : " + st.countTokens());
while (st.hasMoreTokens())
{
System.out.println("urmatorul cuvint : " + st.nextToken());
}
}}

4. String nextToken(String delim) – returnează următorul șir de caractere până la delimitatorul specificat în parametrul delim. Dacă o veți folosi în cadrul unei structuri repetitive va afișa string-urile ce se află între delimitatoare.

De exemplu:
import java.util.*;
class Testare{
public static void main(String [] args){
StringTokenizer st = new StringTokenizer("Programam in ,Java, si ne place");
while (st.hasMoreTokens()){
System.out.println("token:" + st.nextToken(","));
}
}}

Clasa StringTokenizer este învechită, în practică, este mult mai recomandat să folosiți String.split() sau Scanner

Exemplu folosind String.split():
import java.util.*;
class Testare{
public static void main(String [] args){
String text = "Salut lume frumoasa";
String[] cuvinte = text.split(" ");

for (String cuvant : cuvinte) {
System.out.println(cuvant);
}
}}

Exemplu folosind Scanner
import java.util.*;
class Testare{
public static void main(String [] args){
String text = "Salut lume frumoasa";
Scanner scanner = new Scanner(text);
while (scanner.hasNext()) {
System.out.println(scanner.next());
}
scanner.close();
}}

Dragi elevi, studiem numeroase reguli și modalități de a scrie cod sursă în Java, însă adevărata măiestrie a fiecăruia dintre voi constă în a experimenta, a combina inteligent regulile învățate și a crea un cod original, prin care să vă formați propriul stil de programare.


Succes!
💓

Niciun comentariu:

Trimiteți un comentariu

Vă mulțumesc pentru feedback!