2

I'm trying to make a ReverseString program. It's only returning one word only. I would like a full sentence.

import java.util.Scanner;

public class ReverseString {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String word = input.next();

        String reverse = "";
        for (int i = word.length() - 1; i >= 0; i--)
            reverse += word.charAt(i);

        System.out.println(reverse);
    }
}
Zabuzard
  • 20,717
  • 7
  • 45
  • 67
Mr. B
  • 65
  • 10

1 Answers1

0

You can use the reverse method of the StringBuilder/StringBuffer class. Something like :

String reversedString = new StringBuilder(input.nextLine()).reverse().toString();

Or if you want a more low-level approach you could use a Stack push every character in it and pop it one by one to get the reversal of it.

public String reverseString(String s) {
    Stack<Character> stack = new Stack<>();
    StringBuilder stringBuilder = new StringBuilder();
    for (int i = 0; i < s.length(); i++) {
        stack.push(s.charAt(i));
    }
    while (!stack.empty()) {
        stringBuilder.append(stack.pop());
    }
    return stringBuilder.toString();
}
Karl Alexander
  • 301
  • 3
  • 15