Java Controlling Case

Java Controlling Case

Problem 

You need to convert strings to uppercase or lowercase, or to compare strings without regard for case. 

Solution 

The String class has a number of methods for dealing with documents in a particular case. toUpperCase( ) and toLowerCase( ) each return a new string that is a copy of the current string, but converted as the name implies. Each can be called either with no arguments or with a Locale argument specifying the conversion rules; this is necessary because of internationalization.

Java provides significantly more internationalization and localization features than ordinary languages, a feature that is covered in Chapter 15. While the equals( ) method tells you if another string is exactly the same, equalsIgnoreCase( ) tells you if all characters are the same regardless of case. Here, you can’t specify an alternate locale; the system’s default locale is used:

// Case.java
String name = "Java Cookbook";
System.out.println("Normal:\t" + name);
System.out.println("Upper:\t" + name.toUpperCase( ));
System.out.println("Lower:\t" + name.toLowerCase( ));
String javaName = "java cookBook"; // As if it were Java identifiers :-)
if (!name.equals(javaName))
 System.err.println("equals( ) correctly reports false");
else
 System.err.println("equals( ) incorrectly reports true");
if (name.equalsIgnoreCase(javaName))
 System.err.println("equalsIgnoreCase( ) correctly reports true");
else
 System.err.println("equalsIgnoreCase( ) incorrectly reports false");

If you run this, it prints the first name changed to uppercase and lowercase, then it reports that both methods work as expected.

C:\javasrc\strings>java Case
Normal: Java Cookbook
Upper: JAVA COOKBOOK
Lower: java cookbook
equals( ) correctly reports false
equalsIgnoreCase( ) correctly reports true

0 comments:

Post a Comment