// Classe para alguns processamentos de Strings // (filtrar caracteres em índices primos, e testar palíndromos). // // Exemplos de uso na janela Interactions do DrJava: // >ProcessamentoDeStrings meuProcessamento = new ProcessamentoDeStrings(); // > meuProcessamento.filtraPrimos("1234567890") // "146890" // > meuProcessamento.éPalíndromo("SOCORRAMMESUBINOONIBUSEMMARROCOS") // true class ProcessamentoDeStrings { // método auxiliar para filtraPrimos // testa se n é primo (se possui exatamente 2 divisores) boolean éPrimo(int n) { int candidatoADivisor=1; int contaDivisores=0; while (candidatoADivisor<=n) { if (n%candidatoADivisor==0) contaDivisores = contaDivisores+1; candidatoADivisor = candidatoADivisor+1; } return (contaDivisores==2); } // retira da String x todos os caracteres que estiverem // em posições primas (considerando para este // efeito que a posição do primeiro caractere é 1). String filtraPrimos(String entrada) { String saida=""; int índice = 0; // índice vai de 0 até entrada.length()-1 while (índice < entrada.length()) { if (!éPrimo(índice+1)) // usamos (índice+1) para considerar que // o primeiro caractere (de índice 0) // está na posição 1, conforme enunciado. saida = saida + entrada.charAt(índice); índice = índice + 1; } return saida; } // testa se a entrada é palíndromo, ou seja, se // é igual lida da esquerda para a direita e da // direita para a esquerda. boolean éPalíndromo(String entrada) { int índice=0; while (índice