Me ajude nessa atividade java

Me ajude a resolver esse programa a baixo, eu gostaria de colocar para o usuario digitar a palavra para aparecer de trás para frente, e se o usuario não digitar uma palavra com 4 caracteres o programa deverá ser encerrado com a resposta: Digite apenas palavras de 4 caracteres.

eu não consegui colocar para o usuario digitar a palavra e nem para aparecer a mensagem se for digitado mais de 4 caracteres.

package Aula;

public class Atividade {
public static void main(String[] args) {
String palindrome = “java”;
int len = palindrome.length();
char[] tempCharArray = new char[len];
char[] charArray = new char[len];

// put original string in an array of chars
for (int i = 0; i < len; i++) {
  tempCharArray[i] = palindrome.charAt(i);
}

// reverse array of chars
for (int j = 0; j < len; j++) {
  charArray[j] = tempCharArray[len - 1 - j];
}

String reversePalindrome = new String(charArray);
System.out.println(reversePalindrome);

}
}

Para fazer o que vc quer, vc só precisa substituir essa linha:

String palindrome = "java";

Por essas 5:

String palindrome = new Scanner(System.in).nextLine();
if (palindrome.length() != 4) {
    System.out.println("Digite apenas palavras de 4 caracteres");
    return;
}

O código completo ficou assim:

import java.util.Scanner;

class Atividade {
    public static void main(String[] args) {
        String palindrome = new Scanner(System.in).nextLine();
        if (palindrome.length() != 4) {
            System.out.println("Digite apenas palavras de 4 caracteres");
            return;
        }
        int len = palindrome.length();
        char[] tempCharArray = new char[len];
        char[] charArray = new char[len];

        for (int i = 0; i < len; i++) {
            tempCharArray[i] = palindrome.charAt(i);
        }

        for (int j = 0; j < len; j++) {
            charArray[j] = tempCharArray[len - 1 - j];
        }

        String reversePalindrome = new String(charArray);
        System.out.println(reversePalindrome);
    }
}

Contudo, pro código ficar mais limpo e correto, vc poderia fazer assim:

import java.util.Scanner;

class Atividade {
    public static void main(String[] args) {
        try (Scanner sc = new Scanner(System.in)) {
            char[] text = sc.nextLine().toCharArray();
            int length = text.length;

            if (length == 4) {
                char[] reversed = new char[length];

                for (int i = 0, j = length - 1; i < length; i++, j--) {
                    reversed[i] = text[j];
                }

                System.out.printf("Resultado: %s\n", new String(reversed));
            } else {
                System.out.println("Digite apenas palavras de 4 caracteres");
            }
        }
    }
}

Neste código eu fiz 2 melhorias:

  1. Coloquei o Scanner dentro do try. O Scanner é o que usamos pra pegar os dados do usuário e eu o coloquei ali porque quando vc o cria, ele pega recursos do seu computador, e quando vc não precisa mais desses recursos, vc deve devolve-los invocando o método close(). Quando vc coloca o Scanner no try, o método close() é chamado automaticamente pra vc.
  2. Eliminei a necessidade do tempCharArray usando o método toCharArray().
1 curtida

Obrigado amigo, vc tirou minhas dúvidas