224k views
5 votes
(Displaying a Sentence with Its Words Reversed) Write an application that inputs a line of text, tokenizes the line with String method split and outputs the tokens in reverse order. Use space characters as delimiters.

1 Answer

3 votes

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

Step-by-step 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 = '\\'.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.

(Displaying a Sentence with Its Words Reversed) Write an application that inputs a-example-1
(Displaying a Sentence with Its Words Reversed) Write an application that inputs a-example-2
User Nishant Roy
by
5.7k points