반응형
해당 글에서는 소문자, 대문자 범위 내에서 합과 차이를 구하는 방법에 대해 알아봅니다. 해당 방법은 ASCII Code를 이용하여 구합니다.
💡[참고] ASCII Code 표
1) 두 개의 문자 간의 차이
💡 두 개의 문자 간의 차이
- 두 개의 문자(char)가 존재하는 경우 소문자, 대문자 범위 내에서 차이를 구하는 방법에 대해 알아봅니다.
1. 소문자 내에서 문자 간의 차이
💡 소문자 내에서 문자 간의 차이
- 소문자의 ASCII Code 범위(97 ~ 122)를 이용하여 문자 간의 차이를 구합니다.
1. 함수는 두 개의 char형 파라미터 a와 b를 받습니다.
2. 두 문자 a와 b를 문자열로 변환한 후, 첫 번째 문자를 가져와 ASCII 코드값으로 변환합니다. 이후 두 ASCII 코드값의 차를 구하고 96을 더하는 연산을 수행합니다.
3. 만약 계산된 ASCII 코드값이 97보다 작다면, 123에서 (97 - 계산된 ASCII 코드값)을 뺀 값을 새로운 ASCII 코드값으로 사용합니다.
- 이는 알파벳 소문자 ASCII 범위를 벗어나지 않게 하기 위한 조치입니다.
4. 마지막으로 ASCII 코드값을 문자로 변환해서 반환합니다.
/**
* 소문자 범위 내에서 두 문자의 차를 구합니다.
*
* @param a 기준 문자
* @param b 차를 구하려는 문자
* @return 결과 문자
*/
private char subtractLowerCaseChar(char a, char b) {
int subAscii = (String.valueOf(a).charAt(0) - String.valueOf(b).charAt(0)) + 96;
if (subAscii < 97) subAscii = 123 - (97 - subAscii);
return (char) subAscii;
}
1. parameter a : a(97), parameter b: b(98)
2. (97 - 98) + 96 = 95
3. if(95 < 97)
123 - (97 - 95) = > 결과값 :: 121(y)
2. 대문자 내에서 문자 간의 차이
💡 대문자 내에서 문자 간의 차이
- 대문자의 ASCII Code 범위(65 ~ 90)를 이용하여 문자 간의 차이를 구합니다.
1. 두 문자 a와 b를 입력으로 받습니다.
2. 문자 a와 b를 문자열로 변환한 후, 첫 번째 문자를 가져와 ASCII 코드값으로 변환합니다. 이후, 두 ASCII 코드값의 차를 구하고 64를 더합니다.
3. 만약 계산된 ASCII 코드값이 65보다 작다면, 91에서 (65 - 계산된 ASCII 코드값)을 뺀 값을 새로운 ASCII 코드값으로 사용합니다. 이는 알파벳 대문자 ASCII 범위를 벗어나지 않게 하기 위한 조치입니다.
4. 마지막으로 ASCII 코드값을 문자로 변환해서 반환합니다.
/**
* 대문자 범위 내에서 두 문자의 차를 구합니다.
*
* @param a 기준 문자
* @param b 차를 구하려는 문자
* @return 결과 문자
*/
private char subtractUpperCaseChar(char a, char b) {
int subAscii = (String.valueOf(a).charAt(0) - String.valueOf(b).charAt(0)) + 64;
if (subAscii < 65) subAscii = 91 - (65 - subAscii);
return (char) subAscii;
}
1. parameter a : A(65), parameter b: b(66)
2. (65 - 66) + 64 = 63
3. if(63 < 65)
91 - (65 - 63) = > 결과값 :: 89(Y)
2) 두 개의 문자 간의 합
💡 두 개의 문자 간의 합
- 두 개의 문자(char)가 존재하는 경우 소문자, 대문자, 알파벳 범위 내에서 합을 구하는 방법에 대해 알아봅니다.
1. 소문자 내에서 문자 간의 합
💡 소문자 내에서 문자 간의 합
- 소문자의 ASCII Code 범위(97 ~ 122)를 이용하여 문자 간의 합을 구합니다.
1. 함수는 두 개의 char형 파라미터 a와 b를 받습니다.
2. 각 문자 a와 b를 문자열로 변환한 후, 첫 번째 문자를 가져와 ASCII 코드값으로 변환합니다. 그런 다음 두 번째 문자의 ASCII 코드값에서 96을 뺀 값을 첫 번째 문자의 ASCII 코드값에 더합니다.
3. 만약 계산된 ASCII 코드값이 122보다 크다면, (계산된 ASCII 코드값 - 122)에 96을 더한 값을 새로운 ASCII 코드값으로 사용합니다.
- 이는 알파벳 소문자 ASCII 범위를 벗어나지 않게 하기 위한 조치입니다.
4. 마지막으로 ASCII 코드값을 문자로 변환해서 반환합니다.
/**
* 소문자 범위 내에서 두 문자의 합을 구합니다.
*
* @param a
* @param b
* @return
*/
private char sumLowerCaseChar(char a, char b) {
int sumAscii = String.valueOf(a).charAt(0) + (String.valueOf(b).charAt(0) - 96);
if (sumAscii > 122) sumAscii = (sumAscii - 122) + 96;
return (char) sumAscii;
}
1. parameter a : a(97), parameter b: b(98)
2. 97 + (98 - 96) = 결과값 :: 99(c)
3. if(99 > 122) 가 아님
2. 대문자 내에서 문자 간의 합
💡 대문자 내에서 문자 간의 합
- 대문자의 ASCII Code 범위(65 ~ 90)를 이용하여 문자 간의 합을 구합니다.
1. 함수는 두 개의 char형 파라미터 a와 b를 받습니다.
2. 문자 a와 b를 각각 문자열로 변환한 후, 첫 번째 문자를 ASCII 코드값으로 변환합니다. 그런 다음 문자 b의 ASCII 코드값에서 64를 뺀 값을 문자 a의 ASCII 코드값에 더합니다. 이것은 대문자 'A'의 ASCII 값인 65를 기준으로 문자 b의 상대적인 위치 값을 구하고 이를 문자 a의 ASCII 값에 더하는 과정입니다.
3. 만약 계산된 ASCII 코드값이 대문자 'Z'의 ASCII 값인 90보다 크다면, (계산된 ASCII 코드값 - 90)에 64를 더한 값을 새로운 ASCII 코드값으로 사용합니다.
- 이는 알파벳 대문자 ASCII 범위를 벗어나지 않게 하기 위한 조치입니다.
4. 마지막으로 ASCII 코드값을 문자로 변환해서 반환합니다.
/**
* 대문자 범위 내에서 두 문자의 합을 구합니다.
*
* @param a
* @param b
* @return
*/
private char sumUpperCaseChar(char a, char b) {
int sumAscii = String.valueOf(a).charAt(0) + (String.valueOf(b).charAt(0) - 64);
if (sumAscii > 90) sumAscii = (sumAscii - 90) + 64;
return (char) sumAscii;
}
1. parameter a : A(65), parameter b: B(66)
2. 65 + (66 - 64) = 결과값 :: 68(C)
3. if(99 > 90) 가 아님
오늘도 감사합니다. 😀
반응형
'Java > Short 개발' 카테고리의 다른 글
[Java/Short] 1차원 배열, 2차원 배열 간 변환 방법(One Dimension Array to Two Dimension Array) (1) | 2024.03.17 |
---|---|
[Java/Short] SecureRandom을 이용한 랜덤 문자열 생성 방법: 숫자, 문자, 특수문자 조합, 임시 비밀번호 (0) | 2024.02.15 |
[Java/Short] 소문자/대문자의 왼쪽/오른쪽 회전(이동) 방법 (0) | 2024.02.12 |
[Java/Short] 하나의 배열 내 요소 비교 방법 : 전체 요소, 독립적 비교 (0) | 2024.02.12 |
[Java/Short] IPv4, IPv6 정규 표현식(RegExp) 구성 방법 (4) | 2024.01.29 |