Qual sua dúvida especificamente? Vc está quase lá. Algumas coisas para melhorar e para pensar:
- Sua variável
resto deve ser int, não double. O resultado obtido na sua expressão de divisão será invariavelmente um valor inteiro, visto que length() retornará um inteiro e você está dividindo o comprimento da String por um inteiro também;
- Seu
else if que é desnecessário, basta um else, visto que ou comprimento é divisível por 2 (resto igual a zero) ou não é. Não há outras possibilidades no contexto do seu algoritmo;
- Use o método
chatAt( int posicao ) da classe String para obter um caractere de uma determinada posição. Por exemplo, palavra.charAt(2) retorna o caractere na posição 2 da palavra;
- Você precisa calcular a posição dos caracteres do centro;
Pense nisso: se sua palavra tiver 11 caracteres e vc dividir 11 por 2 você obterá 5, que é exatamente o índice do caractere central. Analise: o primeiro caractere está na posição 0, o último na posição 10, sendo assim 5 é a posição do meio. Para a quantidade par, vc pode continuar dividindo por 2, mas você vai precisar de mais uma posição para encontrar o meio. Use o mesmo exemplo acima, agora com 10 caracteres. 10 dividido por 2 resulta em 5, mas 5 é o caractere da “direita” do meio. Qual seria a posição do caractere da esquerda?
Algumas ferramentas importantes e essenciais que hoje em dia os estudantes bizarramente não usam são o caderno, lápis e caneta. Não sei se é o seu caso, mas se você rascunhar no papel o esquema do que você está tentando alcançar, você consegue resolver mais facilmente do que tentar fazer de cabeça.
Eu reescreveria sua solução parcial da seguinte maneira:
import java.util.Scanner;
public class Alg143 {
public static void main(String[] args) {
Scanner ler = new Scanner(System.in);
System.out.println("Digite qualquer palavra");
String palavra = ler.nextLine();
System.out.println(palavra.length());
int resto = palavra.length() % 2;
int meio = palavra.length() / 2;
if( resto == 0 ) {
System.out.println("A quantidade de letras da palavra eh par: " + palavra);
// use o método charAt da classe String para mostrar os dois caracteres centrais
} else {
System.out.println("A quantidade de letras da palavra eh impar: " + palavra);
// use o método charAt da classe String para mostrar o caractere central
}
}
}
Mesmo sua variável resto não precisaria ser usada, bastando colocar o cálculo no próprio if, visto que esse valor só será usado para isso. Algo como
if ( palavra.length() % 2 == 0 ) {
...
} else {
...
}
Tente finalizar e avise se deu certo!