728x90
300x250
프로그래밍을 하다보면 특정문자와 숫자가 매핑+치환이 필요할때가 있다.
" 'A'의 값은 10이다. "
" 'C'라는 문자는 6이라는 값을 가지고 있다.."
라는 식의 매핑이 필요할때 꺼내쓰기 쉽게 사용하는 여러방법에 대해 포스팅한다.
1. 문자를 그대로 index로 사용 (ASCII코드 기반)
: 'A'라는 문자에 대한 index를 관리하고 싶다면 그냥 A = 65 값으로 관리한다.
int[] cnt = new int[128];
//cnt['A'] = 0;
2. 문자를 축약된 index로 변환하는 함수
: A라면 0을 리턴, B라면 1을 리턴..
public static int baseToIndex(char ch) {
if(ch =='A') return 0;
else if (ch == 'B') return 1;
else if (ch == 'J') return 2; ...........
// 사용예시 : cnt[baseToIndex('A')]++
}
1,2 방법 말고도 사전에 미리 index 매핑해둔 객체를 사용해도 좋다!
3. 문자를 축약된 index로 변환하는 배열
: 미리 index를 매핑한 문자배열을 만들어두고 그 배열을 이용
int[] baseToIndex = new int[128];
baseToIndex['A'] = 0;
baseToIndex['B'] = 1;
baseToIndex['J'] = 2;
...
//사용예시: cnt[baseToIndex['A']]++;
4. 문자를 축약된 index로 변환하는 Map
: 3번 방법을 배열대신 Map으로 index를 매핑
HashMap<Character, Integer> baseToIndex = new HashMap<Character, Integer>();
baseToIndex.put('A',0);
baseToIndex.put('B',1);
baseToIndex.put('J',2);
//사용예시 : cnt[baseToIndex.get('A')]++;
출처: 김현정 강사님
728x90
'프로그래밍 > JAVA' 카테고리의 다른 글
[Java] Comparator 이용한 ArrayList 정렬하기 - return 값의 양수/0/음수 의미, Java 오름차순 정렬 예제 (0) | 2023.06.15 |
---|---|
[JAVA] 비밀번호 암호화 하기 SHA-256 알고리즘 + Salt 적용 예제 - 레인보우 테이블 (1) | 2022.06.01 |
[JAVA][JPA] JPA Auditing으로 생성/수정 시간 자동 저장하기 (0) | 2021.01.12 |
[JAVA] ORM, JPA, Hibernate, Mybatis, SQL Mapper 용어 정리 (0) | 2021.01.10 |
[JAVA] 1차원,2차원 배열의 깊은복사, 얕은복사? (0) | 2020.03.24 |