/**
* 한글 조사(助詞) 연결 (을/를,이/가,은/는,로/으로)
* 한글에 단어를 연결하는 조사(助詞) 는 앞에 오는 체언(體言)에 따라 변화되는 경우에 사용
* 규칙
* 1. 체언의 종성에 받침이 있는 경우 '을/이/은/으로/과'
* 2. 체언의 종성에 받침이 없는 경우 '를/가/는/로/와'
* 3. ‘로/으로'의 경우 체언 종성의 받침이 ‘ㄹ' 인경우 '로’ 아니면 '으로’
* @param name
* @param firstValue
* @param secondValue
* @return
*/
public static String getPostWord(String name, String firstValue, String secondValue) {
/*
* 사용법
String name;
name = "네이버";
System.out.println(CommonUtils.getPostWord(name,"으로","로"));
System.out.println(CommonUtils.getPostWord(name,"을","를"));
System.out.println(CommonUtils.getPostWord(name,"이","가"));
System.out.println(CommonUtils.getPostWord(name,"은","는"));
System.out.println(CommonUtils.getPostWord(name,"과","와"));
name = "카카오톡";
System.out.println(CommonUtils.getPostWord(name,"으로","로"));
System.out.println(CommonUtils.getPostWord(name,"을","를"));
System.out.println(CommonUtils.getPostWord(name,"이","가"));
System.out.println(CommonUtils.getPostWord(name,"은","는"));
System.out.println(CommonUtils.getPostWord(name,"과","와"));
name = "구글";
System.out.println(CommonUtils.getPostWord(name,"으로","로"));
System.out.println(CommonUtils.getPostWord(name,"을","를"));
System.out.println(CommonUtils.getPostWord(name,"이","가"));
System.out.println(CommonUtils.getPostWord(name,"은","는"));
System.out.println(CommonUtils.getPostWord(name,"과","와"));
name = "문화포털";
System.out.println(CommonUtils.getPostWord(name,"으로","로"));
System.out.println(CommonUtils.getPostWord(name,"을","를"));
System.out.println(CommonUtils.getPostWord(name,"이","가"));
System.out.println(CommonUtils.getPostWord(name,"은","는"));
System.out.println(CommonUtils.getPostWord(name,"과","와"));
*/
try {
char lastName = name.charAt(name.length() - 1);
// 한글의 제일 처음과 끝의 범위밖일 경우는 오류
if (lastName < 0xAC00 || lastName > 0xD7A3) {
return name;
}
int lastCharIndex = (lastName - 0xAC00) % 28;
// 종성인덱스가 0이상일 경우는 받침이 있는경우이며 그렇지 않은경우는 받침이 없는 경우
if(lastCharIndex > 0) {
// 받침이 있는경우
// 조사가 '로'인경우 'ㄹ'받침으로 끝나는 경우는 '로' 나머지 경우는 '으로'
if(firstValue.equals("으로") && lastCharIndex == 8) {
name += secondValue;
} else {
name += firstValue;
}
} else {
// 받침이 없는 경우
name += secondValue;
}
} catch (Exception e) {
//e.printStackTrace();
}
return name;
}
'Java' 카테고리의 다른 글
[서블릿 개발하기] #2 프로잭트 생성 (0) | 2017.12.25 |
---|---|
[서블릿 개발하기] #1 개발환경 구축 (0) | 2017.12.24 |
안드로이드 웹뷰 디버깅 (0) | 2016.12.13 |
이클립스 프로잭트 시작하기 전 점검 사항(java 버전, UTF-8 엔코딩) (0) | 2016.10.06 |
[안드로이드] 구글맵 (0) | 2015.09.16 |