Char Array în Java | Matrice de caractere Java

Publicat: 2020-12-01

Cuprins

Introducere

Majoritatea datelor pe care le procesăm astăzi au caractere, un limbaj de programare se va spune flexibil dacă este familiar unui programator și oferă o modalitate de a gestiona datele de caractere.

Matricele de caractere în java sunt foarte utile și ușor de utilizat, șirurile sunt imuabile în java, dar putem manipula intrările din matricea de caractere. Matricele de caractere sunt mai rapide în comparație cu listele și seturile și chiar simple decât seturile și listele.

Să explorăm acum funcționarea matricelor char!

Declarație și inițializare

Declararea unei matrice char este similară cu declararea unei matrice obișnuite în java. „char[] array_name” sau „char array_name[]” sunt sintaxele care trebuie urmate pentru declarare.

După declarare, următorul lucru pe care trebuie să-l facem este inițializarea. „array_name = new char[array_length]” este sintaxa care trebuie urmată. Oricum, putem face atât declararea, cât și inițializarea într-o singură, folosind sintaxa „char array_name[] = new char[array_length]”. Lungimea matricei ar trebui să fie declarată în momentul inițializării într-o matrice char.

test de clasă publică {

public static void main ( Argumente șir [])

{

//declarație-1

char arr[];

arr =new char [ 4 ];

//declarație-2

char arr2[] =car nou [ 4 ] ;

//atribuirea-1

char arr1[] =car nou [ ]{ ' a ' , ' b ' , ' c ' , ' d ' };

//atribuirea-2

arr[ 0 ] = ' a ' ;

arr[ 1 ] = ' b ' ;

arr[ 2 ] = ' c ' ;

arr[ 3 ] = ' d ' ;

Sistem . afară . println(arr);

Sistem . afară . println(arr1);

}

}

În fragmentul de mai sus, declarația-1 și declarația-2 sunt ambele modalități de declarare și inițializare. Și atribuirea-1 și atribuirea-2 sunt ambele modalități de a împinge intrări într-o matrice. Amintiți-vă că atunci când tipărim o matrice de caractere, aceasta tipărește toate caracterele îmbinate ca șir, în cazul de mai sus ieșirea va fi „abcd”.

Aflați mai multe: Gestionarea evenimentelor în Java: Ce este și cum funcționează?

Buclă peste o matrice de caractere

Buclă peste o matrice char este o sarcină distractivă în java, putem folosi o buclă obișnuită „for loop” sau o buclă „for: each” pentru bucla peste matrice.

//bucla-1

pentru ( int i = 0 ;i < arr . lungime;i ++ )

Sistem . afară . print(arr[i]);

//bucla-2

pentru ( car c : arr)

Sistem . afară . print(c);

În fragmentul de mai sus, bucla-1 este o buclă obișnuită, iar rezultatul final al buclei unu va fi „abcd”. Și bucla-2 este un for: fiecare buclă și ieșirea finală a buclei-2 va fi „abcd”.

Lungimea unui tablou de caractere poate fi atinsă folosind atributul length. „Array_name.length” este sintaxa care trebuie urmată.

char array[] =new char []{ ' h ' , ' e ' , ' l ' , ' l ' , ' o ' };

Sistem . afară . println(array . length);

Fragmentul de mai sus afișează 5, așa cum era de așteptat.

Înscrieți-vă la cursurile de inginerie software de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Sortarea unui Char Array

Matricele în java pot fi sortate folosind „Arrays.sort(array_name)”. Aceasta va sorta lexicografic matricea de caractere transmise.

char [] array = { ' h ' , ' e ' , ' l ' , ' l ' , ' o ' };

Matrice . sortare(matrice);

Sistem . afară . println( Arrays . toString(array)); //linia 1

Sistem . afară . println(matrice); //randul 2

Rețineți că trebuie să importam java.util.Arrays pentru ca Arrays.sort() și Arrays.toString() să funcționeze.

În fragmentul de mai sus, matricea de caractere este sortată lexicografic, iar prin tipărirea matricei se tipăresc caracterele îmbinate ca șir. Ieșirea lui „line2” va fi „ehllo” dacă nu ieșiți ca șir îmbinat, în schimb doriți să tipăriți întregul tablou cu paranteze drepte la capete, apoi Arrays.toString() face treaba. Ieșirea „line1” va fi [e, h, l, l, o].

În fragmentele de cod anterioare, am declarat matricele de caractere completând intrările din matrice, dar ce se întâmplă dacă dorim să convertim un șir într-o matrice de caractere?

Oricum, inițializam o matrice de caractere cu lungimea șirului, buclă peste șir și adăugam fiecare caracter în matrice care va face treaba.

String s = bună ziua ;

char [] arr =car nou [ s . lungime()];

pentru ( int i = 0 ;i < s . lungime();i ++ )

arr[i] = s . charAt(i);

Sistem . afară . println( Arrays . toString(arr));

Fragmentul de mai sus va imprima [h, e, l, l,o] așa cum era de așteptat.

Fragmentul de mai sus va face arta de a converti un șir într-o matrice de caractere, dar trebuie să scriem acest cod lung de fiecare dată când dorim să convertim un șir într-o matrice de caractere?. Ei bine, răspunsul ar fi NU.

Java oferă o metodă frumoasă numită toCharArray() care trebuie aplicată pe un șir și returnează matricea de caractere.

String s = aejou ;

char [] arr = s . toCharArray();

Sistem . afară . println( Arrays . toString(arr)); //linia 1

arr[ 2 ] = ' i ' ;

Sistem . afară . println( Arrays . toString(arr)); //randul 2

După cum era de așteptat, „line1” afișează [a, e, j, o, u] ca rezultat. Și așa cum sa discutat deja, spre deosebire de un șir, putem edita sau manipula intrările unei matrice char. Deci ieșirea liniei 2 va fi [a, e, i, o, u].

Acum că am văzut o metodă de conversie a unui șir în matrice char în Java, ce se întâmplă dacă vrem o sarcină inversă?

Nu contează java are și o metodă pentru a face astfel de sarcini.

char [] arr = { ' h ' , ' e ' , ' y ' , ' ' , ' t ' , ' h ' , ' e ' , ' r ' , ' e ' };

String s1 = new String (arr); //metoda 1

Sistem . afară . println(s1);

String s2 = String . valueOf(arr); //metoda2

Sistem . afară . println(s2);

În fragmentul de mai sus, putem vedea ambele metode de conversie a unei matrice de caractere într-un șir. Rezultatul fragmentului de mai sus va fi „hei acolo”, așa cum era de așteptat.

Citește și: 17 idei și subiecte interesante de proiecte Java pentru începători

Concluzie

Am ajuns să știm ce sunt matricele de caractere, am învățat diferite moduri de inițializare și declarare a matricelor de caractere. Am parcurs un fragment pentru a trece în buclă peste o matrice de caractere. A sortat o matrice de caractere folosind metoda predefinită Arrays.sort().

Și a observat o implementare naivă și predefinită a conversiei șir în matrice de caractere, de asemenea, a observat o implementare inversă folosind diferite metode. Acum că sunteți bine versat cu conceptele de matrice char, începeți să le implementați!

Dacă sunteți interesat să aflați mai multe despre Java, OOP și dezvoltarea de software full-stack, consultați programul Executive PG de la upGrad și IIIT-B în dezvoltarea de software Full-stack, care este conceput pentru profesioniști care lucrează și oferă peste 500 de ore de formare riguroasă, Peste 9 proiecte și sarcini, statutul de absolvenți IIIT-B, proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Pregătiți-vă pentru o carieră a viitorului

Aplicați acum pentru masterat în inginerie software