luni, 4 februarie 2019

Clasa String. Limbajul Java.


Definiție:


public final class String extends Object implements Serializable, Comparable<String>, CharSequence
Descriere:

Clasa String se află în pachetul java.lang și este utilizată pentru crearea și prelucrarea șirurilor de caractere. Este o clasă închisă spre modificare (immutable), adică o clasă obiectele căreia nu se modifică. Orice valoare atribuită obiectului rămâne în sistem creând astfel a mulțime de obiecte neutilizate. Pentru a crea un șir de caractere puteți utiliza sintaxa: 
String identificator = ”Valoare”; 

De exemplu: String zi = ”Luni”;

Ori de câte ori compilatorul găsește un literal String în codul sursă acesta crează un obiect de tipul clasei String ce va conține ca valoare literalul. 


La fel ca și în cazul celorlalte obiecte, puteți folosi constructorul clasei String pentru a crea o instanță a acestei clase. 

De exemplu: String zi = new String(”Luni”);

Metode:
a) char charAt(int index) - returnează caracterul ce se află pe poziția index. Indicele caracterului din șir variază de la 0 la length()-1. 

De exemplu:

          String s = "Java";
          System.out.println(s.charAt(1)); //a
b) public boolean equals(Object unObiect) – returnează true dacă obiectul curent este echivalent ca valoare cu string-ul unObiect, în caz contrar returnează false. Se ține cont de litere mari și mici.
De exemplu:
String s = "Java";
String s1 = "Java";
String s2 = "java";
System.out.println(s.equals(s1)); //true
System.out.println(s.equals(s2));  //false

c)
public boolean equalsIgnoreCase(String altString) - returnează true dacă obiectul curent este echivalent ca valoare cu string-ul altString, în caz contrar returnează false. Nu se ține cont de litere mari si mici.
De exemplu:
String s = "Java";
String s1 = "java";
String s2 = "Java";
System.out.println(s.equalsIgnoreCase(s1)); //true
System.out.println(s.equalsIgnoreCase(s2)); //true

d) public int length() - returnează lungimea șirului de caractere.
De exemplu:

String s = "Java";
System.out.println(s.length()); //4

e)
public boolean isEmpty() - returnează true dacă și numai dacă length() este 0.
De exemplu:

String s = "Java" ;
String s2 = "";
System.out.println(s.isEmpty());  // false
System.out.println(s2.isEmpty());  // true

f) public boolean startsWith(String prefix, int toffset) - verifică dacă substrigul din șirul dat începând cu poziția toffset începe cu prefixul prefix. 
De exemplu:
String s = "Programare" ;
System.out.println(s.startsWith("ram", 3));   //false
System.out.println(s.startsWith("ram", 4));   //true
System.out.println(s.startsWith("ram", 10));  //false
System.out.println(s.startsWith("ram", -3));  //false

g) public boolean startsWith(String prefix) - verifică dacă șirul dat începe cu prefixul prefix.
De exemplu:

String s = "Programare" ;
System.out.println(s.startsWith("Prog"));  //true
System.out.println(s.startsWith("ram"));   //false

h) public boolean endsWith(String suffix) - verifică dacă șirul dat finisează cu sufixul suffix.
De exemplu:
String s = "Programare" ;
System.out.println(s.endsWith("re"));      //true

i) public int indexOf(String ch) - returnează indicele caracterului ch în cadrul unui șir de caractere.
De exemplu:

String s = "Programare" ;
System.out.println(s.indexOf("r")); //1
System.out.println(s.indexOf("b")); //-1
System.out.println(s.indexOf("P")); //0
System.out.println(s.indexOf("p")); //-1


j) public int lastIndexOf(String ch) - returnează indicele ultimei apariți a caracterului ch în cadrul unui șir de caractere. 
De exemplu:
String s = "Programare" ;
System.out.println(s.lastIndexOf("r")); //8
System.out.println(s.lastIndexOf("b")); //-1
System.out.println(s.lastIndexOf("o")); //2


k) public String concat(String str) – concatinează două șiruri de caractere. 
De exemplu:


String s = "programez in " ;
String s1 = " Java" ;
s.concat(s1);
System.out.println(s);     // programez
String s3 = s.concat(s1);
System.out.println(s3);     // programez in Java
System.out.println("Eu ".concat(s3)+" azi"); //Eu programez in Java azi


l) public String replace(char oldChar, char newChar) - returnează un string rezultat din înlocuirea tuturor aparițiilor caracterelor specificate în oldChar prin newChar. 
De exemplu:
String s = "tata";
System.out.println(s.replace("t", "m")); //mama
System.out.println("Ei pleaca".replace("Ei", "Ele")); //Ele pleaca

m) public boolean contains(CharSequence s) – returnează true daca și numai dacă șirul de caractere conține secvența căutată specificată prin s.
De exemplu:

String s = "Programez in Java";
System.out.println(s.contains("Java")); //true
System.out.println("Ei pleaca".contains("Ele")); //false

n) public String toLowerCase() - Convertește toate literele șirului de caractere în litere mici.
De exemplu:
String s = "Programez";
System.out.println(s.toLowerCase());   //programez
System.out.println("Ei pleaca".toLowerCase());   //ei pleaca
o) 
public String toUpperCase() - Convertește toate literele șirului de caractere în litere mari.
De exemplu:
String s = "Programez";
System.out.println(s.toUpperCase()); //PROGRAMEZ
System.out.println("in java".toUpperCase()); //IN JAVA

p) public String substring(int beginIndex) - returnează un subșir din șirul asupra căruia s-a apelat metoda începând cu indexul elementului din șir specificat prin beginIndex.
De exemplu:

String s = "Programez";
System.out.println(s.substring(3)); // gramez
System.out.println(s.substring(-1)); 
// StringIndexOutOfBoundsException
System.out.println(s.substring(9)); // nu se afiseaza nimic

q) substring(int IndexInitial, int IndexFinal) - returnează un subșir din șirul asupra căruia s-a apelat metoda data începând cu caracterul aflat pe poziția IndexInitial pînă la caracterul cu indicele IndexFinal.
De exemplu:
String s = "Programez";

System.out.println(s.substring(0,7)); // Program
System.out.println(s.substring(0,10)); 
//StringIndexOutOfBoundsException 
System.out.println(s.substring(1,1)); 
// nu se afiseaza nimic
System.out.println(s.substring(3,1)); 
// StringIndexOutOfBoundsException

r) public String trim() - întoarce o copie a șirului fără spațiile de la începutul și sfârșitul șirului. 
De exemplu:

String s = "  Programez  ";
String s1 = "Programez";
System.out.println(s.equals(s1)); //false
System.out.println(s.trim().equals(s1)); //true

A se acorda o deosebită atenție atunci cînd lucrați cu operatorul de concatenare +. 
Se va ține cont de următoarele reguli:
1. Dacă ambii operanzi sunt numerici operatorul + va efectua operația de adunare.
2. Dacă unul din operanzi este String operatorul + va efectua concatenarea.
3. Expresia este evaluată de la stânga la dreapta.

De exemplu:

String s1 = "Hello";
int a = 3;
String s2 ="4";
String s3 ="4";
System.out.println(a+s1); //3Hello
System.out.println(s1+a); //Hello3
System.out.println(s2+s3); //44
System.out.println(1+2); //3
System.out.println("a"+"b"); //ab
System.out.println("a"+3); //a3
System.out.println("a"+3+4); //a34
System.out.println(3+"a"); //3a
System.out.println(3+4+"a"+6+1); //7a61
System.out.println("a"+6+1); //a61
System.out.println(6+1+"a"); //7a


Sper din tot sufletul că această postare vă este de folos! O zi deosebită să aveți !


Structura programelor Java.

    Limbajul de programare Java este un limbaj complet orientat spre obiecte.
Codul sursă este editat doar în interiorul unei clase, nu există cod în exteriorul claselor. Structura completă a unei clase Java vom examina în una din temele viitoare. Vorbind despre structura programelor Java, este necesar de menționat metoda main(...) esențială în testarea claselor create.
    O aplicație Java poate fi alcătuită din o singură clasă sau mai multe clase, însă pentru toate există o singură metodă main(...) în care se vor instanția clasele create și se vor testa metodele programate. De obicei această metodă este încadrată într-o clasă specială de testare, însă se poate afla în clasa de bază.
Deci la general structura unui program Java este următoarea:


Elementele ce alcătuiesc semnătura metodei au următoarea semnificație:
public – este un modificator de acces. În cazul dat specifică că JMV poate accesa metoda de oriunde.
static – este un modificator de tip, specifică că metoda aparține clasei și pentru ca această să fie apelată nu este nevoie de crearea unei instanțe. Vom studia acest modificator în următoarele teme.
void – este tipul de return al metodei. Metoda nu returnează nimic.
main – denumirea metodei configurată în JVM. 

String [] args – lista de parametri a metodei. Argumentul args de tip vector de şiruri de caractere este folosit pentru a prelua parametrii din linia de comandă atunci când aceştia există. Dar, chiar și în cazul în care nu se dorește preluarea argumentelor în acest mod, acest argument nu trebuie să lipsească, este obligatoriu. 

Rețineți! 

1. Într-un fișier *.java se pot afla orice număr de clase , însă doar un poate fi publică.
2. Daca într-un fișier *.java se află o clasă publică atunci numele fișierului trebuie să coincidă cu numele clasei publice.
3. În cazul în care o clasă nu conține metoda main() se va crea o clasă test ce conține metoda main() pentru această.
4. Compilatorul recunoaște următoarele semnături ale metodei main():
public static void main(String a[])

public static void main(String[] a) 
public static void main(String... a)
static public void main(String a[])
static public void main(String[] a)
static public void main(String... a)
public static void main(final String[] args)
public final static void main(String[] args)
public synchronized static void main(String[] args)
public strictfp static void main(String[] args)
5. Semnătura metodei main() nu poate fi modificată după bunul plac al oricărui programator, orice modificare va crea eroare de execuție.
6. Programatorul poate crea metodă denumită main() cu o altă semnătură. Eroare de compilare nu va fi afișată. Însă în cazul în care aceasta va fi executată se va obține eroare de execuție, asemănătoare cu cea prezentată mai jos, în care vom fi atenționați că programul nu poate fi executat pentru că lipsește metoda main(): 
Error: Main method not found in class PrimulProgram, please define the main method as: public static void main(String[] args)