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);
