
Technology Fundamentals
May's Program Challenge
New to Java Programming Center
Java Platform Overview |
Getting Started |
Step-by-Step Programming
Learning Paths |
References & Resources |
Certification |
Supplements
For May's challenge, create a program that examines each character from a command line
argument.
Create a program that examines each character from a command line
argument.
- Use the static methods of class
Character to report on the type of
each character.
- Check if each character is a digit, letter, or whitespace.
- Report the specific type.
A possible solution to the May 2002 Java Technology Fundamentals Program Challenge, Examine:
public class Examine {
public static void main(String args[]) {
// check if word passed in
if (args.length != 1) {
System.err.println(
"Please pass in a word to check");
System.exit(-1);
}
// get word
String word = args[0];
// loop for each character
for (int i=0, n=word.length(); i<n; i++) {
checkChar(word.charAt(i));
}
}
// report status of character
private static void checkChar(char c) {
// display character
System.out.println("Char: " + c);
// check if digit
System.out.println("\tisDigit:\t" +
Character.isDigit(c));
// check if letter
System.out.println("\tisLetter:\t" +
Character.isLetter(c));
// check if whitespace
System.out.println("\tisWhitespace:\t" +
Character.isWhitespace(c));
// report type
System.out.print("\tType:\t\t");
String message = null;
switch (Character.getType(c)) {
case Character.COMBINING_SPACING_MARK:
message = "Combining Spacing Mark";
break;
case Character.CONNECTOR_PUNCTUATION:
message = "Connector Punctuation";
break;
case Character.CONTROL:
message = "Control";
break;
case Character.CURRENCY_SYMBOL:
message = "Currency Symbol";
break;
case Character.DASH_PUNCTUATION:
message = "Dash Punctuation";
break;
case Character.DECIMAL_DIGIT_NUMBER:
message = "Decimal Digit Number";
break;
case Character.ENCLOSING_MARK:
message = "Enclosing Mark";
break;
case Character.END_PUNCTUATION:
message = "End Punctuation";
break;
case Character.FINAL_QUOTE_PUNCTUATION:
message = "Final Quote Punctuation";
break;
case Character.FORMAT:
message = "Format";
break;
case Character.INITIAL_QUOTE_PUNCTUATION:
message = "Initial Quote Punctuation";
break;
case Character.LETTER_NUMBER:
message = "Letter Number";
break;
case Character.LINE_SEPARATOR:
message = "Line Separator";
break;
case Character.LOWERCASE_LETTER:
message = "Lowercase Letter";
break;
case Character.MATH_SYMBOL:
message = "Math Symbol";
break;
case Character.MODIFIER_LETTER:
message = "Modifier Letter";
break;
case Character.MODIFIER_SYMBOL:
message = "Modifier Symbol";
break;
case Character.NON_SPACING_MARK:
message = "Non Spacing Mark";
break;
case Character.OTHER_LETTER:
message = "Other Letter";
break;
case Character.OTHER_NUMBER:
message = "Other Number";
break;
case Character.OTHER_PUNCTUATION:
message = "Other Punctuation";
break;
case Character.OTHER_SYMBOL:
message = "Other Symbol";
break;
case Character.PARAGRAPH_SEPARATOR:
message = "Paragraph Separator";
break;
case Character.PRIVATE_USE:
message = "Private Use";
break;
case Character.SPACE_SEPARATOR:
message = "Space Separator";
break;
case Character.START_PUNCTUATION:
message = "Start Punctuation";
break;
case Character.SURROGATE:
message = "Surrogate";
break;
case Character.TITLECASE_LETTER:
message = "Titlecase Letter";
break;
case Character.UNASSIGNED:
message = "Unassigned";
break;
case Character.UPPERCASE_LETTER:
message = "Uppercase Letter";
break;
default:
message = "Unknown";
}
// display type
System.out.println(message);
}
}
|
Produces the following:
%java Examine word
Char: w
isDigit: false
isLetter: true
isWhitespace: false
Type: Lowercase Letter
Char: o
isDigit: false
isLetter: true
isWhitespace: false
Type: Lowercase Letter
Char: r
isDigit: false
isLetter: true
isWhitespace: false
Type: Lowercase Letter
Char: d
isDigit: false
isLetter: true
isWhitespace: false
Type: Lowercase Letter
|
Have a question about programming? Use Java Online
Support.
|
|