Toggle Case
Problem
Read one line. Change every upper case letter to lower case and every lower case letter to upper case. Keep all other characters.
Constraints
- 0 <= length <= 10^5, ASCII
Examples
Input
Hello World 123
Output
hELLO wORLD 123
Solutions
Each character is checked: upper case to lower case, lower case to upper case, anything else is copied. Python also has s.swapcase() for this.
/*
* Problem : Process one line of text.
* Input : One line of text.
* Output : Swap the case.
* Approach: Test each character.
* Time : O(n)
* Space : O(n)
* Java : 8 or newer.
*/
import java.util.Scanner;
public class Main {
// This method solves the task. It receives the input and returns the answer.
static String solve(String s) {
// Step 1: Build the answer in a StringBuilder.
StringBuilder result = new StringBuilder();
// Step 2: Look at every character.
for (char c : s.toCharArray()) {
// Step 3: Upper case becomes lower case, lower case becomes upper case, others stay.
if (Character.isUpperCase(c)) {
result.append(Character.toLowerCase(c));
} else if (Character.isLowerCase(c)) {
result.append(Character.toUpperCase(c));
} else {
result.append(c);
}
}
return result.toString();
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.hasNextLine() ? scanner.nextLine() : "";
System.out.println(solve(s));
}
}
Hints (1)
- How can you test if a character is upper case?