이번 포스팅은 간단히 JAVA를 통해서 숫자와 영문만을 입력받도록 하기 위해 입력된 텍스트가 숫자와 영문(소문자와 대문자 모두)로만 구성되어 있는지 체크합니다.
특수문자를 제외한 오직 숫자와 영문자만을 입력받을 때 사용하는 메서드로, 입력받은 텍스트 내에 숫자 또는 영문자(소문자와 대문자 모두)가 아닌 다른 문자(한글이나 특수문자)가 입력되면 false를 리턴하고, 숫자와 영문으로만 구성되어 있다면 true를 리턴하는 메서드입니다.
public boolean checkInputOnlyNumberAndAlphabet(String textInput) {
char chrInput;
for (int i = 0; i < textInput.length(); i++) {
chr = textInput.charAt(i); // 입력받은 텍스트에서 문자 하나하나 가져와서 체크
if (chrInput >= 0x61 && chrInput <= 0x7A) {
// 영문(소문자) OK!
}
else if (chrInput >=0x41 && chrInput <= 0x5A) {
// 영문(대문자) OK!
}
else if (chrInput >= 0x30 && chrInput <= 0x39) {
// 숫자 OK!
}
else {
return false; // 영문자도 아니고 숫자도 아님!
}
}
return true;
}
0x61, 0x7A 등은 ASCII 문자를 나타내는 16진수표기입니다.
아래 ASCII 코드 표를 참조해주세요.
영어 소문자 a 는 16진수(Hexa) 값으로 0x61 이며, 영어 소문자 z 는 16진수 값으로 0x7A 입니다.
// 영문(소문자) OK!
}
그렇기 때문에 들어온 텍스트 중에서 특정 문자가 0x61 보다 크고 0x7A 보다 작으면 (즉 0x61과 0x7A 사이라면) 영어 소문자가 입력되었다고 볼 수 있습니다.
영문 대문자와 숫자 입력 체크하는 코드도 동일한 방식입니다. 아래 ASCII 코드표를 보시면 영문자와 숫자의 ASCII 코드 값을 확인하실 수 있으며, 왜 위와 같은 if ~ else 코드가 나왔는지 알 수 있습니다.
10진수 |
16진수 |
8진수 |
2진수 |
ASCII |
0 |
0×00 |
0 |
0 |
NULL |
1 |
0×01 |
1 |
1 |
SOH |
2 |
0×02 |
2 |
10 |
STX |
3 |
0×03 |
3 |
11 |
ETX |
4 |
0×04 |
4 |
100 |
EOT |
5 |
0×05 |
5 |
101 |
ENQ |
6 |
0×06 |
6 |
110 |
ACK |
7 |
0×07 |
7 |
111 |
BEL |
8 |
0×08 |
10 |
1000 |
BS |
9 |
0×09 |
11 |
1001 |
HT |
10 |
0×0A |
12 |
1010 |
LF |
11 |
0×0B |
13 |
1011 |
VT |
12 |
0×0C |
14 |
1100 |
FF |
13 |
0×0D |
15 |
1101 |
CR |
14 |
0×0E |
16 |
1110 |
SO |
15 |
0×0F |
17 |
1111 |
SI |
16 |
0×10 |
20 |
10000 |
DLE |
17 |
0×11 |
21 |
10001 |
DC1 |
18 |
0×12 |
22 |
10010 |
SC2 |
19 |
0×13 |
23 |
10011 |
SC3 |
20 |
0×14 |
24 |
10100 |
SC4 |
21 |
0×15 |
25 |
10101 |
NAK |
22 |
0×16 |
26 |
10110 |
SYN |
23 |
0×17 |
27 |
10111 |
ETB |
24 |
0×18 |
30 |
11000 |
CAN |
25 |
0×19 |
31 |
11001 |
EM |
26 |
0×1A |
32 |
11010 |
SUB |
27 |
0×1B |
33 |
11011 |
ESC |
28 |
0×1C |
34 |
11100 |
FS |
29 |
0×1D |
35 |
11101 |
GS |
30 |
0×1E |
36 |
11110 |
RS |
31 |
0×1F |
37 |
11111 |
US |
32 |
0×20 |
40 |
100000 |
SP |
33 |
0×21 |
41 |
100001 |
! |
34 |
0×22 |
42 |
100010 |
" |
35 |
0×23 |
43 |
100011 |
# |
36 |
0×24 |
44 |
100100 |
$ |
37 |
0×25 |
45 |
100101 |
% |
38 |
0×26 |
46 |
100110 |
& |
39 |
0×27 |
47 |
100111 |
' |
40 |
0×28 |
50 |
101000 |
( |
41 |
0×29 |
51 |
101001 |
) |
42 |
0×2A |
52 |
101010 |
* |
43 |
0×2B |
53 |
101011 |
+ |
44 |
0×2C |
54 |
101100 |
' |
45 |
0×2D |
55 |
101101 |
- |
46 |
0×2E |
56 |
101110 |
. |
47 |
0×2F |
57 |
101111 |
/ |
48 |
0×30 |
60 |
110000 |
0 |
49 |
0×31 |
61 |
110001 |
1 |
50 |
0×32 |
62 |
110010 |
2 |
51 |
0×33 |
63 |
110011 |
3 |
52 |
0×34 |
64 |
110100 |
4 |
53 |
0×35 |
65 |
110101 |
5 |
54 |
0×36 |
66 |
110110 |
6 |
55 |
0×37 |
67 |
110111 |
7 |
56 |
0×38 |
70 |
111000 |
8 |
57 |
0×39 |
71 |
111001 |
9 |
58 |
0×3A |
72 |
111010 |
: |
59 |
0×3B |
73 |
111011 |
; |
60 |
0×3C |
74 |
111100 |
< |
61 |
0×3D |
75 |
111101 |
= |
62 |
0×3E |
76 |
111110 |
> |
63 |
0×3F |
77 |
111111 |
? |
64 |
0×40 |
100 |
1000000 |
@ |
65 |
0×41 |
101 |
1000001 |
A |
66 |
0×42 |
102 |
1000010 |
B |
67 |
0×43 |
103 |
1000011 |
C |
68 |
0×44 |
104 |
1000100 |
D |
69 |
0×45 |
105 |
1000101 |
E |
70 |
0×46 |
106 |
1000110 |
F |
71 |
0×47 |
107 |
1000111 |
G |
72 |
0×48 |
110 |
1001000 |
H |
73 |
0×49 |
111 |
1001001 |
I |
74 |
0×4A |
112 |
1001010 |
J |
75 |
0×4B |
113 |
1001011 |
K |
76 |
0×4C |
114 |
1001100 |
L |
77 |
0×4D |
115 |
1001101 |
M |
78 |
0×4E |
116 |
1001110 |
N |
79 |
0×4F |
117 |
1001111 |
O |
80 |
0×50 |
120 |
1010000 |
P |
81 |
0×51 |
121 |
1010001 |
Q |
82 |
0×52 |
122 |
1010010 |
R |
83 |
0×53 |
123 |
1010011 |
S |
84 |
0×54 |
124 |
1010100 |
T |
85 |
0×55 |
125 |
1010101 |
U |
86 |
0×56 |
126 |
1010110 |
V |
87 |
0×57 |
127 |
1010111 |
W |
88 |
0×58 |
130 |
1011000 |
X |
89 |
0×59 |
131 |
1011001 |
Y |
90 |
0×5A |
132 |
1011010 |
Z |
91 |
0×5B |
133 |
1011011 |
[ |
92 |
0×5C |
134 |
1011100 |
\ |
93 |
0×5D |
135 |
1011101 |
] |
94 |
0×5E |
136 |
1011110 |
^ |
95 |
0×5F |
137 |
1011111 |
_ |
96 |
0×60 |
140 |
1100000 |
. |
97 |
0×61 |
141 |
1100001 |
a |
98 |
0×62 |
142 |
1100010 |
b |
99 |
0×63 |
143 |
1100011 |
c |
100 |
0×64 |
144 |
1100100 |
d |
101 |
0×65 |
145 |
1100101 |
e |
102 |
0×66 |
146 |
1100110 |
f |
103 |
0×67 |
147 |
1100111 |
g |
104 |
0×68 |
150 |
1101000 |
h |
105 |
0×69 |
151 |
1101001 |
i |
106 |
0×6A |
152 |
1101010 |
j |
107 |
0×6B |
153 |
1101011 |
k |
108 |
0×6C |
154 |
1101100 |
l |
109 |
0×6D |
155 |
1101101 |
m |
110 |
0×6E |
156 |
1101110 |
n |
111 |
0×6F |
157 |
1101111 |
o |
112 |
0×70 |
160 |
1110000 |
p |
113 |
0×71 |
161 |
1110001 |
q |
114 |
0×72 |
162 |
1110010 |
r |
115 |
0×73 |
163 |
1110011 |
s |
116 |
0×74 |
164 |
1110100 |
t |
117 |
0×75 |
165 |
1110101 |
u |
118 |
0×76 |
166 |
1110110 |
v |
119 |
0×77 |
167 |
1110111 |
w |
120 |
0×78 |
170 |
1111000 |
x |
121 |
0×79 |
171 |
1111001 |
y |
122 |
0×7A |
172 |
1111010 |
z |
123 |
0×7B |
173 |
1111011 |
{ |
124 |
0×7C |
174 |
1111100 |
| |
125 |
0×7D |
175 |
1111101 |
} |
126 |
0×7E |
176 |
1111110 |
~ |
127 |
0×7F |
177 |
1111111 |
DEL |
ASCII 코드는 모두 외울 필요는 없지만, 자주 사용되는 표이므로 하나 만들어 두시고, 찾아보셔도 좋습니다.
아니면 구글에서 '아스키코드표' 라고만 입력해도 수두룩하게 나옵니다~^^
숫자만 입력받기, 영문과 숫자를 제외한 다른 모든 텍스트를 입력받기, 영어 소문자만 입력받기 등등
위의 메서드를 변형하여 다양하게 활용할 수 있습니다.
'개발&컴퓨터 > JAVA & SPRING' 카테고리의 다른 글
JAVA 한글 포함 여부 확인하기 (0) | 2015.06.20 |
---|---|
CORS 크로스 도메인 이슈 (No 'Access-Control-Allow-Origin' header is present on the requested resource) (22) | 2015.05.11 |
[Tomcat] JAVA Request.getRemoteAddr() 호출 시, IPv4가 아닌 IPv6 주소를 반환하는 문제 (8) | 2015.01.22 |
getSqlMapClient VS getSqlMapClientTemplate in iBatis (2) | 2014.10.09 |
SynchronizedMap과 ConcurrentHashMap (4) | 2014.10.09 |