상세 컨텐츠

본문 제목

java 파일 읽어 문자열 중 한글 파악하기

프로그램 언어/Java

by husks 2016. 10. 25. 09:50

본문

반응형


블로그에 유용한 사이트 글을 올리기 위해 작업을 하던중 자료가 지저분하여 정리할 필요가 생겼습니다.


어떠한 경우냐면은 아래와 같이 링크와 설명글이 붙어있어 보기에 좋지 않고 링크를 달기 어려워 링크와 설명글 사이에 공백(tab)를 붙여야 하는 경우 입니다.


간단하게 자바로 짜보았습니다.


파일을 읽어 한 line씩 읽어오면서 한글이 있으면 그 사이에 (tab)를 넣는 소스 입니다.


[예제]


package test;

import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;

public class ScannerTest {

	public static void main(String[] args) {

		Path path = Paths.get("C:/test", "test.txt");
		Charset charset = Charset.forName("UTF-8");

		String writeFilePath = "C:/test/new_test.txt";
		PrintWriter out = null;

		char chrValue;

		boolean check = false;

		try{

			out = new PrintWriter(writeFilePath);

			List<String> lines = Files.readAllLines(path, charset);

			for(String line : lines){

				check = false;

				for (int i = 0; i < line.length(); i++) {

					chrValue = line.charAt(i); // 입력받은 텍스트에서 문자 하나하나 가져와서 체크

					if (!(chrValue >= 0x00 && chrValue <= 0x7F)) {//영어,숫자,특수기호 텍스트에서 벗어나면 실행해라

						line = line.substring(0, i)+"\t"+line.substring(i);//영어,숫자,특수기호와 한글사이에 공백(tab) 입력

						check = true;//영어숫자 텍스트에서 벗어나면 표시

					}

					if(check){
						break;
					}

				}

				out.println(line);
			}

			out.close();

		} catch (IOException e){

			e.printStackTrace();

		} finally {

			if(out!=null){
				out.close();
			}

		}


	}

}


[아스키코드표]

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


반응형

관련글 더보기

댓글 영역