Manipulação de String

Recebo erro de compilação ao fazer as manipulações com a string. Alguém pode me dar dicas para solucionar o problema?

import java.util.Scanner;

public class Palindromo {
    public static void main (String args[]) {
        char nova, frase;
        int tamanho=0, tamanho_nova=0;
        String entrada = new Scanner();
        // i recebe o tamanho da frase e a usa de parametro dentro do laco
        for(int i=frase.lenght()-1; i>=0; i++){
            //retirando os espacos da frase
            frase = frase.replaceAll(" ","");
            nova += frase.charAt(i);
        }
        //lendo a nova ao inverso e comparando com a original sem os espacos
        if(nova.equals(frase)) {
            System.out.println("É palindromo\n");
        }
        else System.out.println("Não é palíndromo\n");
    }
}

AI deve ter uma linha vermelha em frase.lenght. O certo é length;

você esta usando frase.length no for, mas você não deu nenhum valor a ela antes.

Seguindo a sua lógica, troque i++ por i–

E também troque :
String entrada = new Scanner();

por:
Scanner entrada = new Scanner();

Mas como eu posso definir? Crio uma variável tamanho e atribuo a ela o tamanho da frase?
tamanho = frase.length();

deixe mais claro, o que vc está tentando fazer?

Dado uma palavra, devo verificar se a mesma é, ou não é, um palíndromo.

Estou obtendo alguns erros, segue o código novamente:

import java.util.*;

public class Palindromo {
    public static void main (String args[]) {
    char nova, frase;
    int tamanho=0, tamanho_nova=0;
    Scanner entrada = new Scanner();
    frase = entrada.nextLine();
    tamanho = frase.length();
    // i recebe o tamanho da frase e a usa de parametro dentro do laco
        for(int i=tamanho-1; i>=0; i--){
            //retirando os espacos da frase
            frase = frase.replaceAll(" ","");
            nova += frase.charAt(i);
        }
    //lendo a nova ao inverso e comparando com a original sem os espacos
        if(nova.equals(frase)) {
            System.out.println("É palindromo\n");
        }
        else System.out.println("Não é palíndromo\n");
    }

}

As variáveis nova e frase deveriam ser do tipo String não char e nova deve ser inicializada com "".

Faltou passar o System.in como argumento pro Scanner.

Com as modificações que fiz ficou assim, sem erros:

import java.util.*;

class Palindromo {
    public static void main (String args[]) {
        String nova = "";
        String frase = new Scanner(System.in).nextLine();

        frase = frase.replaceAll(" ","");

        for(int i = frase.length() - 1; i >= 0; i--)
            nova += frase.charAt(i);

        if(nova.equals(frase))
            System.out.println("É palindromo\n");

        else System.out.println("Não é palíndromo\n");
    }
}
1 curtida

Deu certo aqui, obrigado pelas dicas!

1 curtida