문제)
HashSet 컬렉션 프레임워크를 사용하여 command라는 이름으로
list.do=net.bbs.List
read.do=net.bbs.Read
write.do=net.bbs.Write
를 입력해두었다.
이제 이 내용 안에서
= 문자를 기준으로 문자열을 분리해서
= 앞의 문자열은 Key, = 뒤의 문자열은 Value로 구분해서 map에 저장하고
map의 key값들 중에서 "read.do"를 호출하면 "net.bbs.Read"가 출력되게 하라
* 풀이(배열을 사용하는 번외버전도 넣어두었다)
HashSet command=new HashSet();
command.add("list.do=net.bbs.List");
command.add("read.do=net.bbs.Read");
command.add("write.do=net.bbs.Write");
System.out.println(command.size());
System.out.println();
// HashMap hm 만들기
HashMap hm = new HashMap();
// command의 반환자 iter2 만들기
Iterator iter2 = command.iterator();
// 반환자로 command의 요소 불러오기
while(iter2.hasNext()) { // 다음 cursor가 있는지 확인
// cursor가 가리키는 요소 가져와서 obj에 담기
Object obj=iter2.next();
// 요소를 String으로 변환해서 str에 담기
String str = obj.toString();
// pos에 =의 위치값 담기
int pos=str.indexOf("=");
// =를 기준으로 문자열 나누기
String key = str.substring(0, pos);
String value = str.substring(pos+1);
// 나눠진 문자열을 hm 안에 각각 key와 value로 담기
hm.put(key, value);
/*
// 번외버전 : 배열로 담아보기
// str2에 =로 나눈 값들을 담기
String[] str2 = str.split("=");
// hm의 key와 value에 배열 요소 담기
hm.put(str2[0], str2[1]);
*/
} // while end
// 결과값
System.out.println(hm.get("list.do")); // net.bbs.List
System.out.println(hm.get("read.do")); // net.bbs.Read
System.out.println(hm.get("write.do")); // net.bbs.Write
'⁂ Java > : 연습문제' 카테고리의 다른 글
[JAVA] 성적 프로그램 만들기 (1) | 2022.09.21 |
---|---|
[JAVA] 연습문제 - 주민등록번호 유효성 검사 (0) | 2022.09.14 |