Comparați datele în Java

Autor: Roger Morrison
Data Creației: 24 Septembrie 2021
Data Actualizării: 1 Iulie 2024
Anonim
Java String Comparison Tutorial (Equals vs == in Java)
Video: Java String Comparison Tutorial (Equals vs == in Java)

Conţinut

Există mai multe moduri de a compara datele în Java. Intern, o dată este reprezentată ca un moment (lung) în timp - numărul de milisecunde care au trecut de la 1 ianuarie 1970. În Java, data este obiectul Date, ceea ce înseamnă că conține mai multe metode pentru compararea datelor. Orice metodă de comparare a două date va compara practic timpul scurs de ambele date.

A calca

Metoda 1 din 4: Utilizarea comenzii „compareTo”

  1. Utilizați compareTo. Data implementează ComparableDate> și astfel două date pot fi comparate direct între ele folosind metoda compareTo. Dacă datele indică același moment, metoda va reveni la zero. Dacă data comparată este înainte de argumentul dată, atunci va fi returnată o valoare negativă. Dacă data comparată este o dată ulterioară celei din argumentul dată, atunci va fi returnată o valoare pozitivă. Dacă datele sunt aceleași, va fi returnat un zero.
  2. Creați obiectele Date. Va trebui să creați fiecare obiect de dată înainte de a putea începe să le comparați. O modalitate de a face acest lucru este să aplicați clasa SimpleDateFormat. Acest lucru vă permite să introduceți cu ușurință date în obiectele Date.

      SimpleDateFormat sdf = new SimpleDateFormat ("aaaa-MM-zz"); // Pentru declararea valorilor în obiectele date noi.Utilizați același format de dată când creați date Data dată1 = sdf.parse ("23-02 1995"); // data1 este 23 februarie 1995 Data data2 = sdf.parse ("2001-10-31"); // data2 este 31 octombrie 2001 Data data3 = sdf.parse ("23-02 1995"); // data3 este 23 februarie 1995

  3. Comparați obiectele de dată. Mai jos arată fiecare caz - mai mic decât, egal cu și mai mare decât.

      date1.compareTo (data2); // data1 data2, mai puțin de 0 date2.compareTo (data1); // data2> data1, returnează mai mult de 0 date1.compareTo (data3); // data1 = data3, returnează 0

Metoda 2 din 4: Folosirea metodelor „este egal, după și înainte”

  1. Folosiți egal, după și înainte. Datele pot fi comparate între ele folosind metode egale, după și înainte. Dacă două date indică aceeași oră, metoda egală va reveni la „adevărat”. Exemplele folosesc datele create anterior prin metoda compareTo.
  2. Comparați folosind metoda before. Codul de mai jos arată un caz adevărat și fals. Dacă data1 este mai devreme decât data2, rezultatul este adevărat. Dacă nu, înainte returnează fals.

      System.out.print (data1.before (data2)); // tipărește System.out.print adevărat (data2.before (data2)); // print false

  3. Comparați acest lucru cu metoda after. Codul de mai jos arată un caz adevărat și fals. Dacă data2 este mai târziu decât data1, atunci după revine adevărat. Dacă nu, după returnează false.

      System.out.print (date2.after (date1)); // print true System.out.print (date1.after (date2)); // print false

  4. Comparați folosind metoda egală. Codul de mai jos arată un caz adevărat și fals. Dacă datele sunt aceleași, egal este returnat adevărat. Dacă nu, egal este returnat fals.

      System.out.print (date1.equals (data3)); // print true System.out.print (date1.equals (date2)); // print false

Metoda 3 din 4: Utilizarea clasei Calendar

  1. Folosiți clasa Calendar. Clasa Calendar are, de asemenea, metodele compareTo, egal, după și înainte, care funcționează în același mod ca cel descris mai sus pentru clasa de date. Deci, dacă datele despre date sunt păstrate într-un calendar, nu este nevoie să extrageți „data”, ci doar să comparați două date.
  2. Creați o instanță a Calendarului. Pentru a utiliza metodele Calendar aveți nevoie de câteva instanțe Calendar. Din fericire, puteți utiliza timpul generat de instanțele Date.

      Calendar cal1 = Calendar.getInstance (); // declară cal1 Calendar cal2 = Calendar.getInstance (); // declară cal2 Calendar cal3 = Calendar.getInstance (); // declară cal3 cal1.setTime (data1); // aplică data la cal1 cal2.setTime (data2); cal3.setTime (data3);

  3. Comparați cal1 și cal2 folosind înainte. Codul de mai jos returnează adevărat deoarece cal1 este mai devreme decât cal2.

      System.out.print (cal1.before (cal2)); // tipărește adevărat

  4. Comparați cal1 și cal2 folosind after. Codul de mai jos returnează fals, deoarece cal1 este mai devreme decât cal2.

      System.out.print (cal1.after (cal2)); // print false

  5. Comparați cal1 și cal2 folosind egal. Codul de mai jos prezintă un exemplu atât de adevărat, cât și de fals. Condiția depinde de compararea instanțelor din Calendar. Codul de mai jos returnează „true” și apoi „false” pe următoarea linie.

      System.out.println (cal1.equals (cal3)); // print true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // print false: cal1! = cal2

Metoda 4 din 4: Utilizarea metodei "getTime"

  1. Folosiți getTime. De asemenea, este posibil să se compare în mod direct două puncte de timp, deși oricare dintre abordările de mai sus este probabil să dea rezultate mai lizibile și, prin urmare, este preferată. Aceasta este o comparație a două tipuri de date primitive, deci se poate face cu "", ">" și "==".
  2. Creați obiectele de timp „lung”. Înainte de a putea compara datele, trebuie să creați numere întregi lungi din datele obiectelor Data create anterior. Din fericire, metoda getTime () va face cea mai mare parte a muncii pentru dvs.

      long time1 = getTime (data1); // declară ora primitivă1 a datei1 timp lung2 = getTime (data2); // declară ora2 primitivă a datei2

  3. Folosiți o ecuație „mai puțin de”. Folosiți un simbol „mai puțin de” () pentru a compara aceste două valori întregi. Deoarece ora 1 este mai mică decât ora2, primul mesaj ar trebui să fie tipărit pe ecran. Instrucțiunea else este inclusă pentru sintaxa corectă.

      if (time1 time2) {System.out.println ("data1 este mai devreme decât data2"); // tipăriți pentru că ora1 ora2} altfel {System.out.println („data1 este mai târziu sau egal cu data2”); }

  4. Faceți o comparație „mai mare decât”. Utilizați simbolul „mai mare decât” (>) pentru a compara aceste două numere întregi. Deoarece ora1 este mai mare decât ora2, primul mesaj este tipărit pe ecran. Instrucțiunea else este inclusă pentru sintaxa corectă.

      if (ora2> ora1) {System.out.println ("data2 vine după data1"); // tipărește pentru că ora2> ora1} altfel {System.out.println („data2 este mai devreme sau egală cu data1”); }

  5. Faceți o comparație „egală cu”. Folosiți simbolul (==) pentru a compara aceste două numere întregi. Deoarece timpul 1 este egal cu timpul 3, primul mesaj ar trebui să fie tipărit. Dacă programul ajunge la declarația else, înseamnă că orele nu sunt aceleași.

      if (time1 == time2) {System.out.println ("Datele sunt egale"); } else {System.out.println ("Datele nu sunt egale"); // tipărește pentru că ora1! = ora2}