Ce face Scanner.next
next() sare peste spațiile de la început și returnează textul până la următorul separator. Implicit separatorii sunt spațiile, tab-urile și sfârșiturile de rând, deci next() dă câte un cuvânt.
Cu useDelimiter(...) schimbi separatorul, de exemplu useDelimiter(",") pentru valori despărțite prin virgulă. hasNext() spune dacă mai există vreun token. Dacă nu mai există, next() aruncă NoSuchElementException.
Ce returnează
Token-ul citit, ca String.
Exemple
Exemplul 1: Prenume și nume pe același rând
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String prenume = sc.next();
String nume = sc.next();
System.out.println("Prenume: " + prenume);
System.out.println("Nume: " + nume.toUpperCase());
}
}
Ce scrie utilizatorul (intrare)
Ioana Ionescu
Rezultat
Prenume: Ioana
Nume: IONESCU
Exemplul 2: Cuvinte numărate și separator propriu
Primul scanner numără cuvintele; al doilea folosește ; ca separator.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cuvinte = new Scanner("Ana are mere\n și pere");
int n = 0;
while (cuvinte.hasNext()) {
cuvinte.next();
n++;
}
System.out.println("Cuvinte: " + n);
Scanner csv = new Scanner("Iași;Cluj-Napoca;Baia Mare").useDelimiter(";");
while (csv.hasNext()) {
System.out.println("- " + csv.next());
}
cuvinte.close();
csv.close();
}
}
Rezultat
Cuvinte: 5
- Iași
- Cluj-Napoca
- Baia Mare
Greșeli frecvente
- Folosești
next()pentru un text cu spații (de exemplu „Baia Mare”): primești doar „Baia”. FoloseștenextLine()sau schimbă separatorul.
Comenzi înrudite
Scanner.nextLine: Citește tot restul rândului curent (cu spații cu tot) și returnează textul fără sfârșitul de rând.Scanner.nextInt: Citește următorul număr întreg (nextInt) sau zecimal (nextDouble); dă eroare dacă textul nu este un număr.Scanner: Citește text și numere de la tastatură, dintr-un String sau dintr-un fișier, bucată cu bucată; close îl închide.String.split: Împarte șirul în bucăți după un separator (expresie regulată) și returnează un array de String.