fix some MGC classes
[IRC.git] / Robust / src / ClassLibrary / Character.java
1 public class Character {
2
3   public static int digit(char ch, int radix) {
4     if (ch>='0'&&ch<='9')
5       return ch-'0';
6     else if (ch>='a'&&ch<='z') {
7       int val=(ch-'a')+10;
8       if (val<radix)
9         return val;
10     } else if (ch>='A'&&ch<='Z') {
11       int val=(ch-'A')+10;
12       if (val<radix)
13         return val;
14     }
15     return -1;
16   }
17
18   public static boolean isDigit(char ch) {
19     // TODO This is a temparory implementation, there are other groups of digits
20     // besides '0' ~ '9'
21     if (ch>='0'&&ch<='9')
22       return true;
23     else
24       return false;
25   }
26
27   char value;
28
29   public Character(char c) {
30     value = c;
31   }
32
33   public Character(Character c) {
34     value = c.value;
35   }
36
37   public String toString() {
38     return ""+value;
39   }
40
41   public static boolean isWhitespace(char character) {
42     boolean returnValue;
43     if ( (character == '\t') ||
44          (character == '\n') ||
45          (character == ' ') ||
46          (character == '\u000C') ||
47          (character == '\u001C') ||
48          (character == '\u001D') ||
49          (character == '\u001E') ||
50          (character == '\u001F')) {
51       returnValue = true;
52     } else {
53       returnValue = false;
54     }
55     return returnValue;
56   }
57
58   public static final int MIN_RADIX = 2;
59   public static final int MAX_RADIX = 36;
60
61   public static char forDigit(int digit, int radix) {
62     if ((digit >= radix) || (digit < 0)) {
63       return '\0';
64     }
65     if ((radix < Character.MIN_RADIX) || (radix > Character.MAX_RADIX)) {
66       return '\0';
67     }
68     if (digit < 10) {
69       return (char)('0' + digit);
70     }
71     return (char)('a' - 10 + digit);
72   }
73 }