import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.StringTokenizer;
//2. 다음을 프로그래밍 하시오.
//도시 이름, 위도, 경도 정보를 가진 Location 클래스를 작성하고,
//도시 이름을 '키'로 하는 HashMap<String, Location> 컬렉션을 만들고,
//사용자로부터 입력 받아 4개의 도시를 저장하라.
//그리고 도시 이름으로 검색하는 프로그램을 작성하라.
public class Blog {
public static void main(String[] args) {
new Byul();
}
}
class Location {
String city;
int w, g;
Location(String c, int w, int g) {
this.city = c;
this.w = w;
this.g = g;
}
@Override
public String toString() {
return city + " " + w + " " + g;
}
}
class Byul {
Scanner sc;
Map<String, Location> map;
Byul() {
sc = new Scanner(System.in);
map = new HashMap<>();
main();
sc.close();
}
void main() {
System.out.println("도시, 경도, 위도를 입력하세요.");
String s;
String[] tokens = new String[3];
StringTokenizer st;
while (map.size() < 4) {
System.out.print(">> ");
st = new StringTokenizer(sc.nextLine(), ", ");
if (st.countTokens() != 3) {
System.out.println("오류: 도시, 경도, 위도 3개 항목만 공백으로 분리해서 입력하세요.");
continue;
}
for (int i = 0; st.hasMoreTokens(); i++) {
tokens[i] = st.nextToken();
}
if (isNum(tokens[0])) {
System.out.println("오류: 도시 이름은 문자로 입력하세요.");
continue;
}
if (!isNum(tokens[1])) {
System.out.println("오류: 경도는 숫자로 입력하세요.");
continue;
}
if (!isNum(tokens[2])) {
System.out.println("오류: 위도는 숫자로 입력하세요.");
continue;
}
map.put(tokens[0], new Location(tokens[0], Integer.parseInt(tokens[1]), Integer.parseInt(tokens[2])));
}
System.out.println("----------------------------------");
for (String t : map.keySet()) {
System.out.println(map.get(t));
}
System.out.println("----------------------------------");
while (true) {
System.out.print("도시 이름 >> ");
s = sc.next();
if (s.contains("그만")) {
break;
}
if (map.get(s) != null) {
System.out.println(map.get(s));
} else {
System.out.println(s + "는(은) 없습니다.");
}
}
}
boolean isNum(String s) {
try {
Integer.parseInt(s);
} catch (Exception e) {
return false;
}
return true;
}
}
//도시, 경도, 위도를 입력하세요.
//
//>> 서울, 37, 126
//>> LA, 34, -118
//>> 파리, 2, 48
//>> 시드니, 151, -33
//----------------------------------
//서울 37 126
//LA 34 -118
//파리 2 48
//시드니 151 -33
//----------------------------------
//도시 이름 >> 피리
//피리는 없습니다.
//도시 이름 >> 파리
//파리 2 48
//도시 이름 >> 그만
댓글
댓글 쓰기