22.02.05 Java 기본형 / 파이썬 txt 가공

Saparian·2022년 2월 5일
0

오늘의배움

목록 보기
14/53

Java - 기본형(primitive type)
1. 논리형 - boolean
2. 문자형 - char
Python - txt파일 가공하기
1. 성경책 구절정보 제거하기
2. 장별로 나누기

논리형(boolean)_Java

자바에서 논리형은 한가지뿐이다.

  • true
  • false

기본 default값은 false이다.
단 2가지 값만 표현하면 되기때문에 1비트만으로도 충분하나, Java에서는 데이터를 다루는 단위가 1바이트라서 boolean의 크기는 1바이트다.
대소문자를 구별하기때문에 TRUE와 true는 다른 것으로 간주한다.

문자형(char)_Java

문자형 역시 char 한가지뿐이다.

  • 단 하나의 문자만을 저장한다.
  • 사실은 문자가 아닌 문자의 유니코드(정수)가 저장된다.
public class CharToCode {

	public static void main(String[] args) {
		char ch = 'A'; // char ch = 65, 문자를 유니코드 형태로 저장. (정수이지만 문자타입은 char)
		int code = (int)ch; // ch에 저장된 값을 int 타입으로 변환하여 저장
		
		System.out.printf("%c = %d (%#X) %n", ch, code, code); 
        // %c : char, %d : 정수, %X는 16진수(#이 있으면 접두사 '0x'가 나옴), %n : 줄바꿈
		
		char hch = '가'; // char hch = 0xAC00
		System.out.printf("%c = %d (%#X) %n", hch, (int)hch, (int)hch);
		// %X (대문자) : 출력도 대문자로 출력, %x (소문자) : 출력도 소문자로 출력

	}

}

성경책 구절정보 제거하기_Python

원래 인터넷에서 크롤링해서 txt파일을 만드려했으나, 크롤링하기에 적당한 웹페이지를 찾지 못 했을 뿐더러, 성경책 txt파일을 찾아서 그것을 가공하여 사용하기로 했다.

가공해야할 일은 당장 2가지이다.
1. txt에 있는 각 절마다 있는 구절정보를 제거하기

창01:01 태초에 하나님이 천지를 창조하시니라
창01:02 땅이 혼돈하고 공허하며 흑암이 깊음 위에 있고 하나님의 신은 수면에 운행하시니라
창01:03 하나님이 가라사대 빛이 있으라 하시매 빛이 있었고
창01:04 그 빛이 하나님의 보시기에 좋았더라 하나님이 빛과 어두움을 나누사
창01:05 빛을 낮이라 칭하시고 어두움을 밤이라 칭하시니라 저녁이 되며 아침이 되니 이는 첫째 날이니라
창01:06 하나님이 가라사대 물 가운데 궁창이 있어 물과 물로 나뉘게 하리라 하시고
창01:07 하나님이 궁창을 만드사 궁창 아래의 물과 궁창 위의 물로 나뉘게 하시매 그대로 되니라

이런식으로 되어있는 문서에서 각 라인 앞에 있는 창01:01을 제거하려고 했다.
사용된 코드는 아래와 같다.

import re
f = open('Personal_project/Gen.txt', 'r')
i = 0
while i < 50 :
    readF = f.readline()
    results = re.sub('^창[0][1]:\d+' ' ',"",readF)
    print(results)
    i += 1

성경책 장별로 나누기

다음으로 할일은 성경책을 장별로 나누는 일이다.
창01:01에서 장(chapter) 정보를 인식하고 따로 txt파일에 써야한다.

현재까지 진행한 상태는 chapter 정보를 인식하는 단계까지이다.

import re
f = open('Personal_project/Gen.txt', 'r')

i = 0
while i < 50 :
    readF = f.readline()
    if readF[1:3] == "01":
        results = re.sub('^창[0][1]:\d+' ' ',"",readF)
        print(results)
        i += 1
    else:
        continue

반복문을 사용해서 진행할 수 있도록 코드를 더 발전시켜야한다.

0개의 댓글