Descrição
Guru deu uma tarefa para seus alunos. Ele deu uma frase, e os alunos têm que trocar a primeira e a última palavra e inverter todos os caracteres entre essas palavras. Ajude os alunos a resolver essa tarefa usando um programa Java.
Requisitos:
As palavras presentes na frase devem ser maiores que 2, caso contrário, imprima "Comprimento inválido"
A palavra deve conter apenas letras e espaços, caso contrário, imprimir " é uma frase inválida"
Observação:
Na entrada/saída de exemplo fornecida, o texto destacado em negrito corresponde à entrada fornecida pelo usuário, e o restante do texto representa a saída.
Certifique-se de seguir as especificações orientadas a objetos fornecidas na descrição da pergunta.
Certifique-se de fornecer os nomes das classes, atributos e métodos conforme especificado na descrição da pergunta.
Siga o modelo de código, se fornecido
Não use System.exit(0) para encerrar o programa.
Exemplos de entrada/saída. Todas as entradas são precedidas pelo promptEnter the sentence
Exemplo 1 :
Input:
Você usa sua máscara
Output:
mask ruoy raew uoy Do
Exemplo 2:
Input:
Leitor de cartão
Output:
Comprimento inválido
Exemplo 3:
Input:
Indique @ um amigo
Output:
Indique @ um amigo é uma frase inválida
import java.util.Scanner;
class SentenceProcessor {
// Method to check if the sentence is valid
public boolean isValidSentence(String sentence) {
return sentence.matches("[a-zA-Z ]+"); // Only alphabets and spaces allowed
}
// Method to process the sentence
public String processSentence(String sentence) {
if (!isValidSentence(sentence)) {
return sentence + " is an invalid sentence";
}
String[] words = sentence.trim().split("\\s+"); // Split by whitespace
if (words.length <= 2) {
return "Invalid Length";
}
// Swap first and last words
String firstWord = words[0];
String lastWord = words[words.length - 1];
words[0] = lastWord;
words[words.length - 1] = firstWord;
// Reverse middle words
for (int i = 1; i < words.length - 1; i++) {
words[i] = new StringBuilder(words[i]).reverse().toString();
}
return String.join(" ", words); // Join words with a space
}
}
public class UserInterface {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the sentence");
String input = sc.nextLine();
SentenceProcessor processor = new SentenceProcessor();
String result = processor.processSentence(input);
System.out.println(result);
sc.close(); // Close the scanner to avoid resource leaks
}
}
Saída:-
Enter the sentence<br>
Do you wear your mask<br>
mask uoy raew ruoy Do<br>
Saída esperada:-
Enter the sentence<br>
Do you wear your mask<br>
mask ruoy raew uoy Do<br>
Tentei resolver isso, mas não estou conseguindo obter a saída desejada. Também tentei usar várias fontes abertas que não conseguiram me dar o código correto. Elas estão me dando repetidamente a mesma saída (como chatgpt, copilot).