Processando strings

Strings são semelhantes a arrays em muitos aspectos: em certo sentido, uma string se parece com um array de caracteres. Além disso, você pode iterar tanto em strings quanto em arrays. Às vezes, pode ser necessário processar uma string e convertê-la em um array.
Strings e arrays
É possível converter entre strings e matrizes de caracteres usando métodos especiais como valueOf()e toCharArray().
char[] chars = { 'A', 'B', 'C', 'D', 'E', 'F' };
String stringFromChars = String.valueOf(chars); // "ABCDEF"
char[] charsFromString = stringFromChars.toCharArray();
// { 'A', 'B', 'C', 'D', 'E', 'F' }
String theSameString = new String(charsFromString); // "ABCDEF"
Explicar código Existe outra maneira de transformar uma string em um array. Veja:
String text = "Hello";
String[] parts = text.split(""); // {"H", "e", "l", "l", "o"}
Aqui, usamos um método muito mais conciso que divide uma string em partes. Vamos explorá-lo com mais detalhes!
Dividindo a string
Uma string pode ser dividida em um array de strings com base em um delimitador. Para isso, chamamos o método split, que divide a string em sub strings delimitadas por um separador. No exemplo anterior, usamos o delimitador "", que divide automaticamente uma string em elementos menores (sub strings) que consistem em um caractere.
Se o delimitador for especificado, o método retornará um array de todas as sub strings. Observe que o delimitador em si não está incluído em nenhuma das sub strings:
String sentence = "a long text";
String[] words = sentence.split(" "); // {"a", "long", "text"}
Vamos tentar dividir um número de telefone americano em código do país, código de área, código da central telefônica e outros dígitos restantes:
String number = "+1-213-345-6789";
String[] parts = number.split("-"); // {"+1", "213", "345", "6789"}
Tenha em mente que todas essas partes ainda são strings, não importa sua aparência.
Escolha seu delimitador com sabedoria, caso contrário, você poderá obter algumas frases que começam com um espaço:
String text = "That's one small step for a man, one giant leap for mankind.";
String[] parts = text.split(",");
// {"That's one small step for a man", " one giant leap for mankind."}
Você pode escolher qualquer delimitador que preferir, incluindo uma combinação de espaços e palavras:
String text = "I'm gonna be a programmer";
String[] parts = text.split(" gonna be "); // {"I'm", "a programmer"}
Como você pode ver aqui, o método split também é uma boa ferramenta para se livrar de algo que você não precisa ou não quer usar.
Iterando sobre uma string
É possível iterar sobre os caracteres de uma string usando um loop (while , do-while , for-loop).
Veja o exemplo a seguir:
String scientistName = "Isaac Newton";
for (int i = 0; i < scientistName.length(); i++) {
System.out.print(scientistName.charAt(i) + " ");
}
Em strings, assim como em arrays, a indexação começa em 0. No nosso exemplo, o laço for itera sobre a string "Isaac Newton". A cada iteração, o charAtmétodo retorna o caractere atual no iíndice, e esse caractere é então impresso no console, seguido por um espaço em branco.
Resumo
Você pode converter entre uma string e um array usando os métodos valueOf() e toCharArray() ou dividir uma string em sub strings com a ajuda do método split(). Você também pode iterar sobre os caracteres de uma string usando um loop. Todos esses métodos ajudarão você a resolver diferentes tarefas e aprimorar sua experiência em programação.




