마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

ArrayList의 String 값을 HashMap 에서 get하는데 값이 있는데 항상 null이 반환됩니다.

0 추천
	for(int j=0; j < hanText.size(); j++) {

		t = hanText.get(j);

		if(t != null) {
			h = han2EngMap.get(t);

			if(h != null) testText.append(h);
		}
	}


한글 초중성 글자를 영문으로 변환하는걸 만들고 있는데요.

예컨대 "가"를 "ga"로 변환하려고 합니다.

저 소스에서 hanText는 ArrayList<Sring> 인데, "ㄱ", "ㅏ" 이렇게 String 배열을 갖고 있고요.

han2EngMap은 HashMap<String, String> 으로 되어 있고, han2EngMap.put("ㄱ", "g"); 형태로 한글 자모음당 매칭되는 영문을 갖고 있습니다.

모두 String 값인데요. 

이상하게 저 상태로 실행하면, han2EngMap.get(t)는 null을 반환합니다.

t = hanText.get(j); 를 t = "가"; 로 바꾸면 정상동작 하고요.

h = han2EngMap.get(t); 부분을 h = han2EngMap.get("가"); 로 변환해서 실행해도 잘 동작합니다,

hanText.get(j); 를 Log로 찍어도 정상적으로 String값이고, "가" 값이 잘 들어가 있습니다.

로그를 찍어봐도 모두 String 값으로 정상으로 들어가 있고요.

근데, 이상하게 ArrayList에 있는 String을 해쉬맵에 직접 넣으면 null 을 반환하네요. ㅠ.ㅠ

대체 무엇이 문제일까요? 데이터 타입 문제 같은데 아무리 봐도 모두 String으로 정상같은데 ㅠ.ㅠ

 

이슬비0 (150 포인트) 님이 2014년 4월 27일 질문

1개의 답변

+1 추천
hanText가 String 배열을 가지고 있는 ArrayList라면 t[0] 이런식으로 접근을 해야 찾지 않나요?
인연 (31,880 포인트) 님이 2014년 4월 28일 답변
hanText는 ArrayList가 맞는데, hanText.get(j)에서 그 중 한개 String만 꺼내와서 t로 할당했기때문에 t는 그냥 String 이더라구요.ㅠ.ㅠ
...