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
| Method | Time | Space | Best for |
|---|---|---|---|
+= charAt(i) | O(n²) | O(n) | Learning only |
StringBuilder | O(n) | O(n) | Preferred |
| char swap | O(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.
