/**

* 한글 조사(助詞) 연결 (을/를,이/가,은/는,로/으로)

  * 한글에 단어를 연결하는 조사(助詞) 는 앞에 오는 체언(體言)에 따라 변화되는 경우에 사용

  * 규칙

* 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;

}

 

 

+ Recent posts