Practical Code Samples
public class UserInputNormalizer {
public static String normalizeUsername(String input) {
if (input == null) {
return "";
}
// Trim whitespace and convert to lowercase
return input.trim().toLowerCase();
}
public static boolean isValidUsername(String username) {
// Check username against specific criteria
return username != null &&
username.length() >= 3 &&
username.length() <= 20 &&
username.matches("^[a-z0-9_]+$");
}
public static void main(String[] args) {
String rawInput = " JohnDoe123 ";
String normalizedUsername = normalizeUsername(rawInput);
System.out.println("Original: '" + rawInput + "'");
System.out.println("Normalized: '" + normalizedUsername + "'");
System.out.println("Valid: " + isValidUsername(normalizedUsername));
}
}
2. File and URL Handling
public class FileNameProcessor {
public static String convertToUrlFriendlyName(String fileName) {
if (fileName == null) {
return "";
}
// Remove special characters and convert to lowercase
String normalized = fileName
.replaceAll("[^a-zA-Z0-9.-]", "_")
.toLowerCase();
return normalized;
}
public static void main(String[] args) {
String originalFileName = "Report Analysis 2023!.pdf";
String urlFriendlyName = convertToUrlFriendlyName(originalFileName);
System.out.println("Original: " + originalFileName);
System.out.println("URL-Friendly: " + urlFriendlyName);
}
}
3. Data Processing and Comparison
graph TD
A[Input Strings] --> B{Normalize}
B --> C[Lowercase Conversion]
B --> D[Trim Whitespace]
C --> E[Compare Strings]
D --> E
public class StringComparator {
public static boolean compareStringsIgnoreCase(String str1, String str2) {
if (str1 == null || str2 == null) {
return false;
}
return str1.trim().toLowerCase()
.equals(str2.trim().toLowerCase());
}
public static void main(String[] args) {
String input1 = " Hello World ";
String input2 = "hello world";
boolean areEqual = compareStringsIgnoreCase(input1, input2);
System.out.println("Strings are equal: " + areEqual);
}
}
4. Internationalization Support
Locale |
Uppercase Example |
Lowercase Example |
English |
"HELLO" |
"hello" |
Turkish |
"İSTANBUL" |
"istanbul" |
German |
"GRÖßE" |
"größe" |
import java.util.Locale;
public class InternationalizationDemo {
public static void demonstrateLocaleCasing() {
String text = "İstanbul";
// Default conversion
System.out.println("Default Uppercase: " + text.toUpperCase());
// Locale-specific conversion
System.out.println("Turkish Uppercase: " +
text.toUpperCase(Locale.forLanguageTag("tr")));
}
public static void main(String[] args) {
demonstrateLocaleCasing();
}
}
Best Practices for Practical Implementations
- Always handle null and empty string scenarios
- Use trim() before transformation when needed
- Consider performance for large-scale operations
- Be aware of locale-specific casing rules
- Validate and sanitize input before transformation
LabEx Recommendation
When working with complex string transformations, consider exploring advanced string processing libraries in Java to enhance your development efficiency and code readability.