home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / win95 / sieciowe / hotja32.lzh / hotjava / classsrc / java / lang / character.java < prev    next >
Text File  |  1995-08-11  |  5KB  |  177 lines

  1. /*
  2.  * @(#)Character.java    1.13 95/01/31  
  3.  *
  4.  * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19.  
  20. package java.lang;
  21.  
  22. /**
  23.  * The Character class provides an object wrapper for character data values,
  24.  * and serves as a place for character-oriented operations.
  25.  * @version     1.13, 31 Jan 1995
  26.  * @author    Lee Boynton
  27.  */
  28.  
  29. public final
  30. class Character extends Object {
  31.     /**
  32.      * The minimum radix available for conversion to/from strings.
  33.      * @see Integer#toString
  34.      */
  35.     public static final int MIN_RADIX = 2;
  36.  
  37.     /**
  38.      * The maximum radix available for conversion to/from strings.
  39.      * @see Integer#toString
  40.      */
  41.     public static final int MAX_RADIX = 36;
  42.  
  43.     /**
  44.      * Determines if a character is lower case.
  45.      * @param ch    the character to be tested
  46.      * @return     true if the character is lower case.
  47.      */
  48.     public static boolean isLowerCase(char ch) {
  49.     return (ch >= 'a') && (ch <= 'z');
  50.     }
  51.     
  52.     /**
  53.      * Determines if a character is a digit.
  54.      * @param ch    the character to be tested
  55.      * @return     true if the character is a digit.
  56.      */
  57.     public static boolean isDigit(char ch) {
  58.     return (ch >= '0') && (ch <= '9');
  59.     }
  60.  
  61.     /**
  62.      * Determines if a character is upper case.
  63.      * @param ch    the character to be tested
  64.      * @return     true if the character is upper case.
  65.      */
  66.     public static boolean isUpperCase(char ch) {
  67.     return (ch >= 'A') && (ch <= 'Z');
  68.     }
  69.  
  70.     /**
  71.      * Returns the lower case character value of the specified character
  72.      * value. Characters that are not upper case letters are returned
  73.      * unmodified.
  74.      * @param ch    the character to be converted
  75.      * @return    the lower case version of ch
  76.      */
  77.     public static char toLowerCase(char ch) {
  78.     if (isUpperCase(ch)) {
  79.         int offset = 'a' - 'A';
  80.         return (char)(ch + offset);
  81.     }
  82.     return ch;
  83.     }
  84.  
  85.     /**
  86.      * Returns the upper case character value of the specified character
  87.      * value. Characters that are not lower case letters are returned
  88.      * unmodified.
  89.      * @param ch    the character to be converted
  90.      * @return    the upper case version of ch
  91.      */
  92.     public static char toUpperCase(char ch) {
  93.     if (isLowerCase(ch)) {
  94.         int offset = 'A' - 'a';
  95.         return (char)(ch + offset);
  96.     }
  97.     return ch;
  98.     }
  99.  
  100.     /**
  101.      * Returns the numeric value of the character digit using the specified
  102.      * radix. If the character is not a valid digit, return -1.
  103.      * @param ch        the character to be converted
  104.      * @param radix     the radix
  105.      * @return        the corresponding numeric value
  106.      */
  107.     public static int digit(char ch, int radix) {
  108.     if (radix >= MIN_RADIX && radix <= MAX_RADIX) {
  109.         if (radix <= 10) {
  110.         char max = (char)('0' + radix - 1);
  111.         if ((ch >= '0') && (ch <= max)) {
  112.             return (ch - '0');
  113.         }
  114.         } else {
  115.         char lowerChar = toLowerCase(ch);
  116.         char max = (char)('a' + radix - 11);
  117.         if ((ch >= '0') && (ch <= '9')) {
  118.             return (ch - '0');
  119.         } else if (ch >= 'a' && ch <= max) {
  120.             return (10 + ch - 'a');
  121.         }
  122.         }
  123.     }
  124.         return -1;
  125.     }
  126.  
  127.     /**
  128.      * Returns the character value for the specified digit in the specified
  129.      * radix. If the digit is not valid in that radix, the 0 character
  130.      * is returned.
  131.      * @param digit    the digit
  132.      * @param radix     the radix
  133.      * @return        the corresponding character
  134.      */
  135.     public static char forDigit(int digit, int radix) {
  136.     if ((digit >= radix) || (digit < 0)) {
  137.         return '\0';
  138.     }
  139.     if ((radix < MIN_RADIX) || (radix > MAX_RADIX)) {
  140.         return '\0';
  141.     }
  142.     if (digit < 10) {
  143.         return (char)('0' + digit);
  144.     } 
  145.     return (char)('a' + digit - 10);
  146.     }
  147.  
  148.     /**
  149.      * The value of the character.
  150.      */
  151.     private char value;
  152.  
  153.     /**
  154.      * Constructs a Character object with the specified value.
  155.      */
  156.     public Character(char value) {
  157.     this.value = value;
  158.     }
  159.  
  160.     /**
  161.      * Returns the value of this Character object.
  162.      */
  163.     public char charValue() {
  164.     return value;
  165.     }
  166.  
  167.     /**
  168.      * Returns a String object representing this character's value.
  169.      * @return a String representing the value of the character.
  170.      */
  171.     public String toString() {
  172.     char buf[] = {value};
  173.     return String.valueOf(buf);
  174.     }
  175. }
  176.  
  177.