</>

Technology

Java Programs

Difficulty

Beginner

Interview Question

Write a Java program to reverse characters of a string using a method with input validation.

Answer

Reverse Characters of a String (With Method and Validation)

Java
import java.util.Scanner;

public class ReverseChars {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("Please enter a string: ");

        String original = scan.nextLine();

        // Input validation: reject empty or null strings
        while (original.isEmpty() || original == null) {
            System.out.println(
                "Please enter a valid string, empty and null strings are not accepted:");
            original = scan.nextLine();
        }
        scan.close();

        // Call method to reverse
        ReverseChars output = new ReverseChars();
        String reverseCharacters = output.reverseCharacters(original);
        System.out.println(reverseCharacters);
    }

    private String reverseCharacters(String originalString) {
        String reverse = "";

        for (int i = originalString.length() - 1; i >= 0; i--) {
            reverse = reverse + originalString.charAt(i);
        }
        return reverse;
    }
}

Sample Input/Output

CODE
Please enter a string:
Automation
noitamotuA

Improved Validation (Correct Order)

Java
String original = scan.nextLine();

// Fix: check for null BEFORE calling isEmpty()
// In practice scan.nextLine() never returns null, but for safety:
while (original == null || original.trim().isEmpty()) {
    System.out.println("Please enter a non-empty string:");
    original = scan.nextLine();
}

StringBuilder Version (Faster)

Java
private String reverseCharacters(String str) {
    return new StringBuilder(str).reverse().toString();
}

Reverse Words (Not Characters)

Java
String sentence = "Hello World Java";
String[] words   = sentence.split(" ");
StringBuilder reversed = new StringBuilder();

for (int i = words.length - 1; i >= 0; i--) {
    reversed.append(words[i]);
    if (i > 0) reversed.append(" ");
}

System.out.println(reversed);  // "Java World Hello"

Automation Testing Relevance

Java
// Verify reversed text (CAPTCHA alternative validation)
public String reverseText(String text) {
    return new StringBuilder(text).reverse().toString();
}

// Verify order ID displayed in reverse on confirmation page
String orderId       = "ORD-12345";
String expectedDisplay = reverseText(orderId);  // "54321-DRO"
String actualDisplay = driver.findElement(By.id("order-display")).getText();
assertEquals(actualDisplay, expectedDisplay);

Follow AutomateQA