/// <summary> /// <see cref="한글"/> 구조체의 인스턴스를 초기화합니다. /// </summary> /// <param name="문자"><see cref="한글"/> 구조체로 변환될 한글 문자입니다.</param> public 한글(문자 문자) { if (완성형한글여부(문자)) { 정수 니코드값 = 문자; 니코드값 -= 0xac00; var 나머지 = 니코드값 % (모음갯수 * 받침갯수); 자음 = (자음)(니코드값 / (모음갯수 * 받침갯수)); 모음 = (모음)(나머지 / 받침갯수); 받침 = (받침)(나머지 % 받침갯수); } else { 자음 = 자음.실패; 모음 = 모음.실패; 받침 = 받침.실패; } }
/// <summary> /// 지정한 텍스트에서 마지막 문자의 받침을 지정한 받침으로 치환합니다. /// </summary> /// <param name="문장">마지막 문자의 받침이 치환될 문자열입니다.</param> /// <param name="받침">치환할 받침입니다.</param> /// <returns>마지막 문자의 받침이 치환된 문장입니다.</returns> public static 문자열 받침치환(문자열 문장, 받침 받침) { var 마지막문자 = 문장[^ 1];
/// <summary> /// 지정한 문자의 받침을 지정한 받침으로 치환합니다. /// </summary> /// <param name="문자">받침이 치환될 문자입니다.</param> /// <param name="받침">치환할 받침입니다.</param> /// <returns>받침이 치환된 문자입니다.</returns> public static 문자 받침치환(문자 문자, 받침 받침) => (문자)받침치환(문자, (정수)받침);
/// <summary> /// <see cref="한글"/> 구조체의 인스턴스를 초기화합니다. /// </summary> /// <param name="자음">설정할 자음입니다.</param> /// <param name="모음">설정할 모음입니다.</param> /// <param name="받침">설정할 받침입니다. 기본값은 <see cref="받침.없음"/>입니다.</param> public 한글(자음 자음, 모음 모음, 받침 받침 = 받침.없음) { this.자음 = 자음; this.모음 = 모음; this.받침 = 받침; }
/// <summary> /// 한글의 자음, 모음, 받침을 한 문자로 조합합니다. /// </summary> /// <param name="자음"></param> /// <param name="모음"></param> /// <param name="받침"></param> /// <returns></returns> public static 문자 조합(자음 자음, 모음 모음, 받침 받침 = 받침.없음) => (문자)조합((정수)자음, (정수)모음, (정수)받침);