Answer:
I am writing a JAVA and Python program. Let me know if you want the program in some other programming language.
import java.util.Scanner; // class for taking input from user
public class Reverse{ //class to reverse a sentence
public static void main(String[] args) { //start of main() function body
Scanner input = new Scanner(System.in); //create a Scanner class object
System.out.print("Enter a sentence: "); //prompts user to enter a sentence
String sentence = input.nextLine(); // scans and reads input sentence
String[] tokens = sentence.split(" "); // split the sentence into tokens using split() method and a space as delimiter
for (int i = tokens.length - 1; i >= 0; i--) { //loop that iterates through the tokens of the sentence in reverse order
System.out.println(tokens[i]); } } } // print the sentence tokens in reverse order
Explanation:
In JAVA program the user is asked to input a sentence. The sentence is then broken into tokens using split() method. split method returns an array of strings after splitting or breaking the sentence based on the delimiter. Here the delimiter used is space characters. So split() method splits the sentence into tokens based on the space as delimiter to separate the words in the sentence. Next the for loop is used to iterate through the tokens as following:
Suppose the input sentence is "How are you"
After split() method it becomes:
How
are
you
Next the loop has a variable i which initialized to the tokens.length-1. This loop will continue to execute till the value of i remains greater than or equals to 0.
for (int i = tokens.length - 1; i >= 0; i--)
The length of first token i.e you is 3 so the loop executes and prints the word you.
Then at next iteration the value of i is decremented by 1 and now it points at the token are and prints the word are
Next iteration the value of i is again decremented by i and it prints the word How.
This can be achieved in Python as:
def reverse(sentence):
rev_tokens = ' '.join(reversed(sentence.split(' ')))
return rev_tokens
line = input("enter a sentence: ")
print((reverse(line)))
The method reverse takes a sentence as parameter. Then rev_tokens = ' '.join(reversed(sentence.split(' '))) statement first splits the sentence into array of words/tokens using space as a delimiter. Next reversed() method returns the reversed sentence. Next the join() method join the reversed words of the sentence using a space separator ' '.join(). If you want to represent the reversed tokens each in a separate line then change the above statement as follows:
rev_tokens = '\n'.join(reversed(sentence.split(' ')))
Here the join method joins the reversed words separating them with a new line.
Simply input a line of text and call this reverse() method by passing the input line to it.