Char Array em Java | Matriz de caracteres Java

Publicados: 2020-12-01

Índice

Introdução

A maioria dos dados que processamos hoje tem caracteres, uma linguagem de programação será dita flexível se for familiar a um programador e fornecer uma maneira de lidar com dados de caracteres.

Arrays de char em java são muito úteis e fáceis de usar, strings são imutáveis ​​em java, mas podemos manipular as entradas no array de char. Arrays de char são mais rápidos quando comparados a listas e conjuntos e até mesmo simples que conjuntos e listas.

Vamos explorar o funcionamento de arrays char agora!

Declaração e Inicialização

A declaração de um array char é semelhante à declaração de um array regular em java. “char[] array_name” ou “char array_name[]” são as sintaxes a serem seguidas para declaração.

Após a declaração, a próxima coisa que precisamos fazer é a inicialização. “array_name = new char[array_length]” é a sintaxe a ser seguida. De qualquer forma, podemos fazer a declaração e a inicialização em um único usando a sintaxe “char array_name[] = new char[array_length]”. O comprimento do array deve ser declarado no momento da inicialização em um array char.

classe pública Teste {

public static void main ( String args[])

{

//declaração-1

char arr[];

arr = novo caractere [ 4 ];

//declaração-2

char arr2[] =novo char [ 4 ];

//atribuindo-1

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

//atribuindo-2

arr[ 0 ] = ' um ' ;

arr[ 1 ] = ' b ' ;

arr[ 2 ] = ' c ' ;

arr[ 3 ] = ' d ' ;

Sistema . fora . println(arr);

Sistema . fora . println(arr1);

}

}

No trecho acima, declaração-1 e declaração-2 são ambas as formas de declaração e inicialização. E assigning-1 e assigning-2 são ambas as maneiras de enviar entradas para uma matriz. Lembre-se que quando imprimimos um array de char ele imprime todos os caracteres mesclados como uma string, no caso acima a saída será “abcd”.

Saiba mais: Manipulação de eventos em Java: o que é isso e como funciona?

Fazendo um loop em um array de char

Fazer um loop sobre um array char é uma tarefa divertida em java, podemos usar um loop regular “for” ou um loop “for: each” para fazer um loop sobre o array.

//loop-1

for ( int i = 0 ;i < arr . comprimento; i ++ )

Sistema . fora . print(arr[i]);

//loop-2

para ( char c : arr)

Sistema . fora . imprima(c);

No trecho acima, o loop-1 é um loop for regular e a saída final do loop um será “abcd”. E o loop-2 é um for: cada loop e a saída final do loop-2 serão “abcd”.

O comprimento de uma matriz de caracteres pode ser obtido usando o atributo length. “Array_name.length” é a sintaxe a ser seguida.

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

Sistema . fora . println(array . comprimento);

O trecho acima imprime 5, como esperado.

Inscreva-se em cursos de engenharia de software das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Classificando uma matriz de caracteres

Arrays em java podem ser ordenados usando “Arrays.sort(array_name)”. Isso classificará a matriz de caracteres passada lexicograficamente.

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

Matrizes . ordenar(matriz);

Sistema . fora . println( Matrizes . toString(matriz)); //linha 1

Sistema . fora . println(matriz); //linha 2

Observe que precisamos importar java.util.Arrays para que Arrays.sort() e Arrays.toString() funcionem.

No trecho acima, a matriz char é classificada lexicograficamente e a impressão da matriz imprime os caracteres mesclados como uma string. A saída de “line2” será “ehllo” se você não fizer a saída como uma string mesclada, em vez disso, você deseja imprimir o array inteiro com colchetes nas extremidades, então Arrays.toString() faz o trabalho. A saída de “line1” será [e, h, l, l, o].

Nos trechos de código anteriores, declaramos os arrays char preenchendo as entradas no array, mas e se quisermos converter uma string em um array char?

De qualquer forma, inicializamos um array de caracteres com comprimento de string, fazemos um loop sobre a string e acrescentamos cada caractere ao array para fazer o trabalho.

String s = olá ;

char [] arr =novo char [s . comprimento()];

for ( int i = 0 ;i < s . comprimento();i ++ )

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

Sistema . fora . println( Arrays . toString(arr));

O trecho acima imprimirá [h, e, l, l,o] conforme esperado.

O trecho acima fará a arte de converter uma string em um array de caracteres, mas precisamos escrever esse código longo toda vez que queremos converter uma string em um array de caracteres?. Bem, a resposta seria NÃO.

Java fornece um belo método chamado toCharArray() que deve ser aplicado em uma string e retorna o array char.

String s = aejou ;

char [] arr = s . toCharArray();

Sistema . fora . println( Arrays . toString(arr)); //linha 1

arr[ 2 ] = ' eu ' ;

Sistema . fora . println( Arrays . toString(arr)); //linha 2

Como esperado, “line1” imprime [a, e, j, o, u] como saída. E como já discutido, diferente de uma string podemos editar ou manipular as entradas de um array char. Assim, a saída da linha2 será [a, e, i, o, u].

Agora que vimos um método para converter uma string em um array char em java, e se quisermos uma tarefa vice-versa?

Não importa java também tem um método para fazer essas tarefas.

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

String s1 = new String (arr); //Método 1

Sistema . fora . println(s1);

Cadeia s2 = Cadeia . valorOf(arr); //método2

Sistema . fora . println(s2);

No trecho acima, podemos ver os dois métodos para converter um array char em uma string. A saída do snippet acima será “hey there”, conforme esperado.

Leia também: 17 ideias e tópicos interessantes de projetos Java para iniciantes

Conclusão

Viemos a saber o que são arrays char, aprendemos várias maneiras de inicializar e declarar arrays char. Percorreu um trecho para fazer um loop em uma matriz de caracteres. Ordenou um array char usando o método Arrays.sort() predefinido.

E observou uma implementação ingênua e predefinida de conversão de string para char array, também observou uma implementação vice-versa usando vários métodos. Agora que você está bem versado nos conceitos de arrays char, comece a implementá-los!

Se você estiver interessado em aprender mais sobre Java, OOPs e desenvolvimento de software full-stack, confira o Programa PG Executivo do upGrad & IIIT-B em Desenvolvimento de Software Full-stack, projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, Mais de 9 projetos e atribuições, status de ex-alunos do IIIT-B, projetos práticos práticos e assistência de trabalho com as principais empresas.

Prepare-se para uma carreira do futuro

Inscreva-se agora para Mestrado em Engenharia de Software