home *** CD-ROM | disk | FTP | other *** search
- package java.lang;
-
- public final class Character {
- public static final int MIN_RADIX = 2;
- public static final int MAX_RADIX = 36;
- static char[] downCase;
- static char[] upCase;
- private char value;
-
- public static boolean isLowerCase(char ch) {
- return ch <= 255 && (upCase[ch] != ch || ch == 223 || ch == 255);
- }
-
- public static boolean isUpperCase(char ch) {
- return ch <= 255 && downCase[ch] != ch;
- }
-
- public static boolean isDigit(char ch) {
- return ch >= '0' && ch <= '9';
- }
-
- public static boolean isSpace(char ch) {
- switch (ch) {
- case ' ':
- case '\r':
- case '\f':
- case '\n':
- case '\t':
- return true;
- default:
- return false;
- }
- }
-
- public static char toLowerCase(char ch) {
- return ch <= 255 ? downCase[ch] : ch;
- }
-
- public static char toUpperCase(char ch) {
- return ch <= 255 ? upCase[ch] : ch;
- }
-
- public static int digit(char ch, int radix) {
- if (radix >= 2 && radix <= 36) {
- if (radix <= 10) {
- char max = (char)(48 + radix - 1);
- if (ch >= '0' && ch <= max) {
- return ch - 48;
- }
- } else {
- ch = toLowerCase(ch);
- if (ch >= '0' && ch <= '9') {
- return ch - 48;
- }
-
- char max = (char)(97 + radix - 11);
- if (ch >= 'a' && ch <= max) {
- return 10 + ch - 97;
- }
- }
- }
-
- return -1;
- }
-
- public static char forDigit(int digit, int radix) {
- if (digit < radix && digit >= 0) {
- if (radix >= 2 && radix <= 36) {
- return digit < 10 ? (char)(48 + digit) : (char)(97 + digit - 10);
- } else {
- return '\u0000';
- }
- } else {
- return '\u0000';
- }
- }
-
- public Character(char value) {
- this.value = value;
- }
-
- public char charValue() {
- return this.value;
- }
-
- public int hashCode() {
- return this.value;
- }
-
- public boolean equals(Object obj) {
- if (obj != null && obj instanceof Character) {
- return this.value == (Character)obj;
- } else {
- return false;
- }
- }
-
- public String toString() {
- char[] buf = new char[]{this.value};
- return String.valueOf(buf);
- }
-
- static {
- char[] down = new char[256];
- char[] up = new char[256];
-
- for(int i = 0; i < 256; ++i) {
- down[i] = up[i] = (char)i;
- }
-
- for(int lower = 97; lower <= 122; ++lower) {
- int upper = lower + -32;
- up[lower] = (char)upper;
- down[upper] = (char)lower;
- }
-
- for(int lower = 224; lower <= 254; ++lower) {
- if (lower != 247) {
- int upper = lower + -32;
- up[lower] = (char)upper;
- down[upper] = (char)lower;
- }
- }
-
- downCase = down;
- upCase = up;
- }
- }
-