home *** CD-ROM | disk | FTP | other *** search
/ Print Shop Ensemble 3 / the-print-shop-ensemble-iii.iso / worldnet / disk2 / java.z / MOZ2_01.ZIP / java / lang / Character.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-03-08  |  2.4 KB  |  129 lines

  1. package java.lang;
  2.  
  3. public final class Character {
  4.    public static final int MIN_RADIX = 2;
  5.    public static final int MAX_RADIX = 36;
  6.    static char[] downCase;
  7.    static char[] upCase;
  8.    private char value;
  9.  
  10.    public static boolean isLowerCase(char ch) {
  11.       return ch <= 255 && (upCase[ch] != ch || ch == 223 || ch == 255);
  12.    }
  13.  
  14.    public static boolean isUpperCase(char ch) {
  15.       return ch <= 255 && downCase[ch] != ch;
  16.    }
  17.  
  18.    public static boolean isDigit(char ch) {
  19.       return ch >= '0' && ch <= '9';
  20.    }
  21.  
  22.    public static boolean isSpace(char ch) {
  23.       switch (ch) {
  24.          case ' ':
  25.          case '\r':
  26.          case '\f':
  27.          case '\n':
  28.          case '\t':
  29.             return true;
  30.          default:
  31.             return false;
  32.       }
  33.    }
  34.  
  35.    public static char toLowerCase(char ch) {
  36.       return ch <= 255 ? downCase[ch] : ch;
  37.    }
  38.  
  39.    public static char toUpperCase(char ch) {
  40.       return ch <= 255 ? upCase[ch] : ch;
  41.    }
  42.  
  43.    public static int digit(char ch, int radix) {
  44.       if (radix >= 2 && radix <= 36) {
  45.          if (radix <= 10) {
  46.             char max = (char)(48 + radix - 1);
  47.             if (ch >= '0' && ch <= max) {
  48.                return ch - 48;
  49.             }
  50.          } else {
  51.             ch = toLowerCase(ch);
  52.             if (ch >= '0' && ch <= '9') {
  53.                return ch - 48;
  54.             }
  55.  
  56.             char max = (char)(97 + radix - 11);
  57.             if (ch >= 'a' && ch <= max) {
  58.                return 10 + ch - 97;
  59.             }
  60.          }
  61.       }
  62.  
  63.       return -1;
  64.    }
  65.  
  66.    public static char forDigit(int digit, int radix) {
  67.       if (digit < radix && digit >= 0) {
  68.          if (radix >= 2 && radix <= 36) {
  69.             return digit < 10 ? (char)(48 + digit) : (char)(97 + digit - 10);
  70.          } else {
  71.             return '\u0000';
  72.          }
  73.       } else {
  74.          return '\u0000';
  75.       }
  76.    }
  77.  
  78.    public Character(char value) {
  79.       this.value = value;
  80.    }
  81.  
  82.    public char charValue() {
  83.       return this.value;
  84.    }
  85.  
  86.    public int hashCode() {
  87.       return this.value;
  88.    }
  89.  
  90.    public boolean equals(Object obj) {
  91.       if (obj != null && obj instanceof Character) {
  92.          return this.value == (Character)obj;
  93.       } else {
  94.          return false;
  95.       }
  96.    }
  97.  
  98.    public String toString() {
  99.       char[] buf = new char[]{this.value};
  100.       return String.valueOf(buf);
  101.    }
  102.  
  103.    static {
  104.       char[] down = new char[256];
  105.       char[] up = new char[256];
  106.  
  107.       for(int i = 0; i < 256; ++i) {
  108.          down[i] = up[i] = (char)i;
  109.       }
  110.  
  111.       for(int lower = 97; lower <= 122; ++lower) {
  112.          int upper = lower + -32;
  113.          up[lower] = (char)upper;
  114.          down[upper] = (char)lower;
  115.       }
  116.  
  117.       for(int lower = 224; lower <= 254; ++lower) {
  118.          if (lower != 247) {
  119.             int upper = lower + -32;
  120.             up[lower] = (char)upper;
  121.             down[upper] = (char)lower;
  122.          }
  123.       }
  124.  
  125.       downCase = down;
  126.       upCase = up;
  127.    }
  128. }
  129.