[Java] 문자를 index로 변환하여 관리하는 여러가지 방법 (문자 치환) :: 매운코딩
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

+ Recent posts