FACULDADE DE TECNOLOGIA SENAC PELOTAS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Algoritmos e Programação I – Edécio Fernando Iepsen Manipulação de Strings Muitas das operações a serem realizadas sobre os dados utilizados por um programa referem-se a manipulação de cadeias de caracteres (strings), como validação de senhas, contagem de palavras, cópia de partes de um texto, etc. Uma cadeia de caracteres é uma seqüência de letras, algarismos ou símbolos (sinais de pontuação, parênteses, etc.). Cada caractere é uma informação e a cadeia de caracteres é um conjunto de informações. Portanto, os nossos programas além de lidar com números, podem também manipular textos, com os mesmos fluxos de programação trabalhados anteriormente. As linguagens permitem realizar diversas operações sobre strings, além disso, uma string pode ser tratada caracter por caracter. Em Java pode-se fazer isto através do método charAt(). Observe o exemplo: cidade = "Pelotas"; System.out.print(cidade.charAt(0)); // ou cidade = new String("Pelotas"); // vai exibir P Ou seja, o primeiro caracter é referenciado pela posição 0. Os seguintes métodos estão disponíveis na linguagem Java para manipulação de Strings. cidade.length() - Retorna a quantidade de caracteres armazenados em uma variável string. cidade.substring() - Exibe parte de uma string. cidade.substring(3) - Exibe a partir da posição inicial até o final da palavra. Exemplo: "otas" cidade.substring(0,2) – Exibe da posição inicial até a posição final (exceto). Exemplo: "Pe" Comparações de String cidade.equals(“Pelotas”) – verifica a igualdade cidade.equalsIgnoreCase(“Pelotas”) – igual sem diferenciar maiúsculas de minúsculas cidade.compareTo(“Pelotas”) – retorna um número inteiro, que pode ser: - zero se as palavras forem iguais - um número menor que zero se cidade for alfabeticamente menor que “Pelotas” - um número maior que zero se cidade for alfabeticamente maior que “Pelotas” Localização de caracteres cidade.indexOf(‘e’); – procura uma letra na palavra (retorna 1) cidade.indexOf(“Pel”); - procura uma substring na palavra (retorna 0) cidade.lastIndexOf(‘a’); – procura a partir do final da palavra (retorna 5) Obs.: Se não existir retorna -1. Pode-se ainda indicar a posição inicial da procura, acrescentando um segundo parâmetro ao indexOf(“palavra”, pos_inicial). Outras operações sobre String cidade.replace('a', 'u'); Exibe a string, substituindo a letra 'a' pela letra 'u'. cidade.toLowerCase(); Retorna a palavra em minúsculas. cidade.toUpperCase(); Retorna a palavra em maiúsculas. cidade.trim(); Retorna a palavra sem os espaços em branco no início e/ou no final da palavra. Obs.: Estes métodos não alteram o conteúdo da String, apenas o modificam para exibição ou para atribuição a uma outra variável. Java dispõe também do tipo StringBuffer que permite o uso de novos métodos (que alteram o conteúdo da variável). Conversão de Strings x Números Em alguns programas pode ser necessário converter um texto ou parte dele em número ou um número em string. Para isso, a linguagem Java dispõe dos métodos Integer.parseInt("string"), Float.parseFloat("string") e String.valueOf(num). Observe os exemplos. idade = Integer.parseInt("10"); nota = Float.parseFloat("7.5"); chave = "AP"+String.valueOf(codigo); // converte String para integer // converte String para float // converte integer/float para String Dividindo uma string a partir de um caracter Com a Linguagem Java é possível dividir uma string em partes, através do método split. Para isso deve ser declarado um vetor de strings (sem tamanho). Observe o exemplo. String partes[], dados; dados = "João;23;Pelotas"; partes = dados.split(";"); System.out.print(partes[0]); System.out.print(partes.length); // irá exibir "João" // irá exibir 3 Obs.: O método .length, sem os parênteses, é utilizado para retornar o número de elementos de um vetor. Scratch O Scratch dispõe dos comandos exibidos ao lado para manipulação de strings. As demais funções devem ser construídas “a mão”, o que é interessante do ponto de vista da aprendizagem. Também é possível converter uma string em vetor, e então usar alguns comandos de manipulação de vetores como, por exemplo, o comando: Exemplo: Elaborar um programa que leia o sobrenome de uma pessoa. Informe quantas letras possui o sobrenome e após, exiba letra por letra do sobrenome (como se estivesse soletrando).