본문 바로가기

개발&컴퓨터/JAVA & SPRING

[JAVA] 숫자 또는 영문만 받기 (특수 문자 및 한글 입력 제한하기)

반응형

이번 포스팅은 간단히 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 입니다.

 

if (chrInput >= 0x61 && chrInput <= 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 코드는 모두 외울 필요는 없지만, 자주 사용되는 표이므로 하나 만들어 두시고, 찾아보셔도 좋습니다.

아니면 구글에서 '아스키코드표' 라고만 입력해도 수두룩하게 나옵니다~^^

 

숫자만 입력받기, 영문과 숫자를 제외한 다른 모든 텍스트를 입력받기, 영어 소문자만 입력받기 등등

위의 메서드를 변형하여 다양하게 활용할 수 있습니다.

 

반응형