한국어를 입력하면 로마자로 변환해주는 Java 라이브러리. 국립국어원 로마자 표기법을 기반으로 구현되었고 많은 부분이 커버 가능하지만 한국어의 특성상 단어별 사전 데이터가 존재하지 않으면 100% 구현이 어렵기 때문에 완벽하지는 않다.
<dependency>
<groupId>net.crizin</groupId>
<artifactId>korean-romanizer</artifactId>
<version>2.0.1</version>
</dependency>
자음 동화가 일어나는 부분에서 역행 동화, 순행 동화 모두 가능할 때 어느쪽을 선택할지 지정할 수 있는 옵션.
ConsonantAssimilation.Progressive
: 순행 동화ConsonantAssimilation.Regressive
: 역행 동화
KoreanRomanizer.romanize("신라면", KoreanCharacter.ConsonantAssimilation.Progressive);
// => Sinnamyeon
KoreanRomanizer.romanize("신라면", KoreanCharacter.ConsonantAssimilation.Regressive);
// => Sillamyeon
단어의 성격별로 예외적인 처리를 하기 위해 단어의 타입을 지정할 수 있는 옵션.
체언에서 'ㄱ, ㄷ, ㅂ' 뒤에 'ㅎ'이 따를 때 'ㅎ'을 밝혀 적기 위해 주는 옵션.
KoreanRomanizer.romanize("묵호");
// => Muko
KoreanRomanizer.romanize("묵호", KoreanCharacter.Type.Substantives);
// => Mukho
합성어에서 앞 단어의 끝이 자음이고 뒤 단어의 첫 음절 발음이 y 또는 i로 시작되는 경우 'ㄴ'을 첨가하는 옵션.
KoreanRomanizer.romanize("학여울");
// => Hagyeoul
KoreanRomanizer.romanize("학여울", KoreanCharacter.Type.Compound);
// => Hangnyeoul
지명을 올바르게 표기하기 위한 옵션.
KoreanRomanizer.romanize("제주도");
// => Jejudo
KoreanRomanizer.romanize("효자로73번길")
// => Hyojaro73Beon-gil
KoreanRomanizer.romanize("제주도", KoreanCharacter.Type.District);
// => Jeju-do
KoreanRomanizer.romanize("효자로73번길", KoreanCharacter.Type.District)
// => Hyoja-ro 73beon-gil
인명을 올바르게 표기하기 위한 옵션
KoreanRomanizer.romanize("제갈공명")
// => Jegalgongmyeong
KoreanRomanizer.romanize("제갈공명", KoreanCharacter.Type.Name)
// => Jegal Gongmyeong
Type.Name
과 같지만 흔히 사용하는 성씨 표기법을 따르는 옵션
KoreanRomanizer.romanize("박보검", KoreanCharacter.Type.Name)
// => Bak Bogeom
KoreanRomanizer.romanize("박보검", KoreanCharacter.Type.NameTypical)
// => Park Bogeom
위 옵션들을 지정하지 않았을 때의 기본 값.
new KoreanCharacter('A').getRomanizedString();
// => A
new KoreanCharacter('고').getRomanizedString();
// => go
new KoreanCharacter('고').getRomanizedString(new KoreanCharacter('닭'), null, ConsonantAssimilation.Regressive, Type.Typical);
// '고' 앞에 '닭'이 있을 때 '고'의 발음
// => kko
new KoreanCharacter('신').getRomanizedString(null, new KoreanCharacter('라'), KoreanCharacter.ConsonantAssimilation.Progressive, KoreanCharacter.Type.Typical)
// '신' 뒤에 '라'가 있고 순행 동화를 적용했을 때의 발음
// => sin
KoreanRomanizer.romanize(String)
KoreanRomanizer.romanize(String, ConsonantAssimilation)
KoreanRomanizer.romanize(String, Type)
KoreanRomanizer.romanize(String, Type, ConsonantAssimilation)
입력 받은 문자열을 로마자로 변환한다. 변환시 옵션을 추가할 수 있는 Overloading 메소드들도 존재한다.
type
, consonantAssimilation
값을 생략했을 때는 Type.Typical
, ConsonantAssimilation.Regressive
가 기본값.