Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- EasyOCR
- python 학습
- 자료형
- python multiprocessing
- 자바스크립트
- python pool
- 파이썬
- 파이썬 멀티프로세싱
- 파이썬 기초
- 기존 모델 학습
- 가상 환경
- javascript
- python 멀티프로세싱
- Java
- react
- Anaconda
- easyocr 기존 모델 학습
- python
- 명령어
- multiprocessing
- python 기초
- 설치
- 파이썬 pool
- 리액트
- python easyocr 학습
- 기초
- easyocr 기존 모델
- 파이썬 학습 테스트
- conda
- 함수
Archives
- Today
- Total
귀찮아서가끔하는블로그
[JAVA] 한글 -> 영어 변환 본문
반응형
이전 포스팅인 Spring boot API 호출 샘플만들기에서 flask api 호출 시 에러가 발행하였다.
에러는 파일 이름이 한글이여서 발생한다는 내용이었다.
다음과 같은 한글발음 -> 영어전환 코드를 사용하여 에러를 해결할 수 있었다.
1. EngConvert.java
public class EngConvert {
/** 초성 - 가(ㄱ), 날(ㄴ) 닭(ㄷ) */
private static char[] arrChoSung = { 0x3131, 0x3132, 0x3134, 0x3137, 0x3138, 0x3139, 0x3141, 0x3142, 0x3143, 0x3145,
0x3146, 0x3147, 0x3148, 0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e };
/** 중성 - 가(ㅏ), 야(ㅑ), 뺨(ㅑ) */
private static char[] arrJungSung = { 0x314f, 0x3150, 0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157,
0x3158, 0x3159, 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160, 0x3161, 0x3162, 0x3163 };
/** 종성 - 가(없음), 갈(ㄹ) 천(ㄴ) */
private static char[] arrJongSung = { 0x0000, 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3139,
0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140, 0x3141, 0x3142, 0x3144, 0x3145, 0x3146, 0x3147,
0x3148, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e };
/** 초성 - 가(ㄱ), 날(ㄴ) 닭(ㄷ) */
private static String[] arrChoSungEng = { "k", "K", "n", "d", "D", "r", "m", "b", "B", "s", "S", "a", "j", "J",
"ch", "c", "t", "p", "h" };
/** 중성 - 가(ㅏ), 야(ㅑ), 뺨(ㅑ) */
private static String[] arrJungSungEng = { "a", "e", "ya", "ae", "eo", "e", "yeo", "e", "o", "wa", "wae", "oe",
"yo", "u", "wo", "we", "wi", "yu", "eu", "ui", "i" };
/** 종성 - 가(없음), 갈(ㄹ) 천(ㄴ) */
private static String[] arrJongSungEng = { "", "k", "K", "ks", "n", "nj", "nh", "d", "l", "lg", "lm", "lb", "ls",
"lt", "lp", "lh", "m", "b", "bs", "s", "ss", "ng", "j", "ch", "c", "t", "p", "h" };
/** 단일 자음 - ㄱ,ㄴ,ㄷ,ㄹ... (ㄸ,ㅃ,ㅉ은 단일자음(초성)으로 쓰이지만 단일자음으론 안쓰임) */
private static String[] arrSingleJaumEng = { "r", "R", "rt", "s", "sw", "sg", "e", "E", "f", "fr", "fa", "fq", "ft",
"fx", "fv", "fg", "a", "q", "Q", "qt", "t", "T", "d", "w", "W", "c", "z", "x", "v", "g" };
public static String engConvert(String koName) {
String word = koName; // 분리할 단어
String result = ""; // 결과 저장할 변수
String resultEng = ""; // 알파벳으로
for (int i = 0; i < word.length(); i++) {
/* 한글자씩 읽어들인다. */
char chars = (char) (word.charAt(i) - 0xAC00);
if (chars >= 0 && chars <= 11172) {
/* A. 자음과 모음이 합쳐진 글자인경우 */
/* A-1. 초/중/종성 분리 */
int chosung = chars / (21 * 28);
int jungsung = chars % (21 * 28) / 28;
int jongsung = chars % (21 * 28) % 28;
/* A-2. result에 담기 */
result = result + arrChoSung[chosung] + arrJungSung[jungsung];
/* 자음분리 */
if (jongsung != 0x0000) {
/* A-3. 종성이 존재할경우 result에 담는다 */
result = result + arrJongSung[jongsung];
}
/* 알파벳으로 */
resultEng = resultEng + arrChoSungEng[chosung] + arrJungSungEng[jungsung];
if (jongsung != 0x0000) {
/* A-3. 종성이 존재할경우 result에 담는다 */
resultEng = resultEng + arrJongSungEng[jongsung];
}
} else {
/* B. 한글이 아니거나 자음만 있을경우 */
/* 자음분리 */
result = result + ((char) (chars + 0xAC00));
/* 알파벳으로 */
if (chars >= 34097 && chars <= 34126) {
/* 단일자음인 경우 */
int jaum = (chars - 34097);
resultEng = resultEng + arrSingleJaumEng[jaum];
} else if (chars >= 34127 && chars <= 34147) {
/* 단일모음인 경우 */
int moum = (chars - 34127);
resultEng = resultEng + arrJungSungEng[moum];
} else {
/* 알파벳인 경우 */
resultEng = resultEng + ((char) (chars + 0xAC00));
}
} // if
} // for
System.out.println("============ result ==========");
System.out.println("단어 : " + word);
System.out.println("자음분리 : " + result);
System.out.println("알파벳 : " + resultEng);
return resultEng;
}
}
반응형
'JAVA' 카테고리의 다른 글
[JAVA] Spring boot API 호출 샘플 만들기 (0) | 2022.07.05 |
---|---|
[JAVA] request 데이터 파싱 (0) | 2022.05.10 |
[JAVA] by pass 통신 (0) | 2022.05.09 |
[JAVA] 스트링 타입 데이터를 json형식으로 파싱하는 메소드 (0) | 2022.05.09 |
Comments