</>

Technology

Java Programs

Difficulty

Beginner

Interview Question

Write a Java program to reverse a string using a for loop and StringBuffer (with Scanner input).

Answer

Reverse a String Using For Loop and StringBuffer

Java
import java.util.Scanner;

public class ReverseString {
    public static void main(String[] args) {
        // Reverse a String using for loop and StringBuffer
        System.out.println("Enter the string:");

        Scanner sc = new Scanner(System.in);
        String s   = sc.nextLine();

        // Method 1: Using for loop
        int len    = s.length();
        String rev = "";

        for (int i = len - 1; i >= 0; i--) {
            rev = rev + s.charAt(i);   // build reversed string char by char
        }

        System.out.println("Reversed (for loop): " + rev);

        // Method 2: Using StringBuffer class
        StringBuffer sf = new StringBuffer(s);
        System.out.println("Reversed (StringBuffer): " + sf.reverse());
    }
}

Sample Input/Output

CODE
Enter the string:
Selenium
Reversed (for loop): muineLeS
Reversed (StringBuffer): muineLeS

Method Comparison

Java
String s = "AutomationTesting";

// 1. For loop (manual, educational)
String rev = "";
for (int i = s.length() - 1; i >= 0; i--)
    rev += s.charAt(i);
// → "gnitseT noitamotuA"

// 2. StringBuffer (Java classic)
String rev2 = new StringBuffer(s).reverse().toString();
// → "gnitseT noitamotuA"

// 3. StringBuilder (Java 5+ preferred)
String rev3 = new StringBuilder(s).reverse().toString();
// → "gnitseT noitamotuA"

// 4. char array swap
char[] arr = s.toCharArray();
int l = 0, r = arr.length - 1;
while (l < r) {
    char t = arr[l]; arr[l++] = arr[r]; arr[r--] = t;
}
String rev4 = new String(arr);
// → "gnitseT noitamotuA"

Performance Note

MethodTimeSpaceBest for
+= charAt(i)O(n²)O(n)Learning only
StringBuilderO(n)O(n)Preferred
char swapO(n)O(n)In-place feel

Avoid String += in a loop for large strings — each concatenation creates a new String object. Use StringBuilder.append() instead.

Follow AutomateQA