2.11. Testing the Contents of a String

Problem

You need to make sure a string contains only numbers, letters, or a combination of both.

Solution

Use the various StringUtils methods to validate user input; isNumeric( ) , isAlpha() , isAlphanumeric() , and isAlphaSpace() verify that a string does not contain any undesired characters:

String state = "Virginia"

System.our.println( "Is state number? " + 
                    StringUtils.isNumeric( state ) );
System.our.println( "Is state alpha? " + 
                    StringUtils.isAlpha( state ) );
System.our.println( "Is state alphanumeric? " + 
                    StringUtils.isAlphanumeric( state ) );
System.our.println( "Is state alphaspace? " + 
                    StringUtils.isAlphaspace( state ) );

This code tests the string “Virginia” against four validation methods, producing the following output:

Is state a number? false
Is state alpha? true
Is state alphanumeric? true
Is state alphaspace? true

Discussion

StringUtils.isNumeric( ) returns true if the string being tested contains only digits from 0 to 9. If you are asking a user to input a numerical value, such as year or age, you need to have a way to ensure that the input supplied is, in fact, a numeric value:

String test1 = "1976";
String test2 = "Mozart";

boolean t1val = StringUtils.isNumeric( test1 );
boolean t2val = StringUtils.isNumeric( test2 ); 

System.out.println( "Is " + test1 + " a number? " + t1val );
System.out.println( "Is " + test2 + " a number? " + t2val );

This code tests two strings and produces the following output:

Is 1976 a number? true ...

Get Jakarta Commons Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.