MySQL Java JavaScript PHP Python HTML-CSS C-sharp

Introducerea și ieșirea în consola Java

Cel mai simplu mod de interacțiune cu utilizatorul este consola: putem afișa informații pe consolă sau, dimpotrivă, putem citi anumite date din consolă. Pentru interacțiunea cu consola în Java, se folosește clasa System, iar funcționalitatea sa asigură introducerea și ieșirea în consolă.

Ieșire în consolă

Pentru crearea unui flux de ieșire, în clasa System este definit obiectul out. În acest obiect este definită metoda println, care permite afișarea pe consolă a unei valori, urmată de mutarea cursorului pe următoarea linie. De exemplu:

public class Program {

   public static void main(String[] args) {
         
       System.out.println("Hello world!");
       System.out.println("Bye world...");
   }
}

În metoda println se transmite orice valoare, de regulă un șir de caractere, care trebuie afișată pe consolă. În acest caz, vom obține următoarea ieșire:

Hello world!  
Bye world...

Dacă este necesar, putem să nu mutăm cursorul pe linia următoare. În acest caz, putem folosi metoda System.out.print(), care este similară cu println, cu excepția faptului că nu mută cursorul pe linia următoare.

public class Program {
 
   public static void main(String[] args) {
         
       System.out.print("Hello world!");
       System.out.print("Bye world...");
   }
}

Ieșirea în consolă a acestui program va fi:

Hello world!Bye world...

Totuși, cu ajutorul metodei System.out.print putem muta cursorul pe linia următoare folosind secvența de escape \n:

System.out.print("Hello world \n");

Adesea este necesar să înlocuim anumite date într-un șir de caractere. De exemplu, avem două numere și dorim să le afișăm valorile pe ecran. În acest caz, putem scrie așa:

public class Program {
 
   public static void main(String[] args) {
         
       int x=5;
       int y=6;
       System.out.println("x=" + x + "; y=" + y);
   }
}

Ieșirea în consolă a programului va fi:

x=5; y=6

Totuși, în Java există și o funcție pentru ieșirea formatată, moștenită din limbajul C: System.out.printf(). Cu ajutorul ei, putem rescrie exemplul precedent astfel:

int x=5;
int y=6;
System.out.printf("x=%d; y=%d \n", x, y);

În acest caz, simbolurile %d reprezintă un specificator, în locul căruia se introduce unul dintre argumente. Pot exista mai mulți specificatori și argumente corespunzătoare. În acest caz avem doar două argumente, deci în loc de primul %d se introduce valoarea variabilei x, iar în loc de al doilea - valoarea variabilei y.

Litera d semnifică faptul că acest specificator va fi folosit pentru afișarea valorilor întregi.

Pe lângă specificatorul %d, putem folosi și alți specificatori pentru alte tipuri de date:

  • %x: pentru afișarea numerelor hexazecimale
  • %f: pentru afișarea numerelor în virgulă mobilă
  • %e: pentru afișarea numerelor în formă exponențială, de exemplu, 1.3e+01
  • %c: pentru afișarea unui singur caracter
  • %s: pentru afișarea valorilor de tip șir de caractere

De exemplu:

public class Program {

   public static void main(String[] args) {
         
       String name = "Tom";
       int age = 30;
       float height = 1.7f;
         
       System.out.printf("Name: %s  Age: %d  Height: %.2f \n", name, age, height);
   }
}

La afișarea numerelor în virgulă mobilă putem specifica numărul de zecimale, folosind specificatorul %.2f, unde .2 indică faptul că după virgulă vor fi afișate două zecimale. În cele din urmă, vom obține următoarea ieșire:

Name: Tom  Age: 30  Height: 1,70

Introducerea datelor în consolă

Pentru a obține date de la consolă, în clasa System este definit obiectul in. Cu toate acestea, nu este foarte convenabil să lucrăm direct cu obiectul System.in, de aceea, de obicei, se folosește clasa Scanner, care la rândul său folosește System.in. De exemplu, vom scrie un mic program care permite introducerea de numere:

import java.util.Scanner;

public class Program {
 
   public static void main(String[] args) {
         
       Scanner in = new Scanner(System.in);
       System.out.print("Input a number: ");
       int num = in.nextInt();
         
       System.out.printf("Your number: %d \n", num);
       in.close();
   }
}

Deoarece clasa Scanner se află în pachetul java.util, o importăm mai întâi cu instrucțiunea import java.util.Scanner.

Pentru a crea obiectul Scanner, se transmite obiectul System.in în constructorul său. După aceasta, putem obține valorile introduse. De exemplu, în acest caz, mai întâi afișăm un mesaj de solicitare a introducerii și apoi obținem numărul introdus în variabila num.

Pentru a obține numărul introdus, se folosește metoda in.nextInt(), care returnează valoarea întreagă introdusă de la tastatură.

Exemplu de ieșire a programului:

Input a number: 5 
Your number: 5

Clasa Scanner are și alte metode care permit obținerea valorilor introduse de utilizator:

  • next(): citește un șir de caractere până la primul spațiu
  • nextLine(): citește tot șirul de caractere introdus
  • nextInt(): citește un număr de tip int
  • nextDouble(): citește un număr de tip double
  • nextBoolean(): citește o valoare booleană
  • nextByte(): citește un număr de tip byte
  • nextFloat(): citește un număr de tip float
  • nextShort(): citește un număr de tip short

Astfel, pentru fiecare tip de date primitiv, în clasa Scanner este definită metoda corespunzătoare.

De exemplu, vom crea un program pentru introducerea informațiilor despre o persoană:

import java.util.Scanner;

public class Program {
 
   public static void main(String[] args) {
         
       Scanner in = new Scanner(System.in);
       System.out.print("Input name: ");
       String name = in.nextLine();
       System.out.print("Input age: ");
       int age = in.nextInt();
       System.out.print("Input height: ");
       float height = in.nextFloat();
       System.out.printf("Name: %s  Age: %d  Height: %.2f \n", name, age, height);
       in.close();
   }
}

Aici sunt introduse consecutiv date de tipurile String, int, float, și apoi toate aceste date sunt afișate împreună pe consolă. Exemplu de ieșire a programului:

Input name: Tom  
Input age: 34 
Input height: 1.7 
Name: Tom  Age: 34  Height: 1.70

Observați că pentru introducerea unei valori de tip float (același lucru se aplică și pentru tipul double) se folosește valoarea "1.7", unde separatorul este punctul, nu "1,7", unde separatorul este virgula. În acest caz, totul depinde de localizarea lingvistică actuală a sistemului. În cazul meu, localizarea este în limba română, așa că este necesar să introducem numerele cu separatorul punct.

← Lecția anterioară Lecția următoare →