Java /day13 / 23.09.08(금) / (핀테크) Spring 및 Ai 기반 핀테크 프로젝트 구축

허니몬·2023년 9월 8일
post-thumbnail

P13_collection


ch02_set


Member

package ch02_set;

public class Member {
	private String name;
	private int age;

	public Member(String name, int age) {
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	@Override
	public String toString() {
		return name + " - " + age;
	}
	@Override
	public int hashCode() {
		return name.hashCode() + age;
	}
	@Override
	public boolean equals(Object obj) {
		if(obj instanceof Member) {
			Member tmp = (Member)obj;
			if(!name.equals(tmp.name)) return false;
			if(!(age==tmp.age)) return false;
			return true;
		}
		return false;
	}
	
}

ExHashSet

package ch02_set;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class ExHashSet {
	public static void main(String[] args) {
//		HashSet<Member> hs = new HashSet<>();
		Set<Member> hs = new HashSet<>();
		
		Member memA = new Member("유재석", 50);
		Member memB = new Member("유재석", 50);
		// 내용물은 같지만 hashCode는 다르므로 다른 개체로 판단
		System.out.println(memA.hashCode());
		System.out.println(memB.hashCode());
		
		System.out.println(hs);
		
		// add() : 추가
		hs.add(memA);
		hs.add(memB);
		hs.add(new Member("김종국", 40));
		hs.add(new Member("송지효", 30));
		// hashCode(), equals() override 후 확인하면 hashCode가 같으므로 
		// 같은 값으로 인식해서 중복이 불가능하므로 1개만 들어가 있는 것을 확인
		System.out.println(hs);
		
		// size() : 데이터 수 확인 
		System.out.println(hs.size());
		
		// 값 모두 확인 : foreach
		for(Member man : hs) {
			System.out.println(man);
		}
		System.out.println();
		
		Iterator<Member> it = hs.iterator();
		String dname = "유재석";
		while(it.hasNext()) {
			Member man = it.next();
			if(man.getName().equals(dname)) {
				System.out.println(dname + " ㅋㅋ 찾음 너 삭제");
				it.remove();
			}
		}
		System.out.println();
		
		System.out.println(hs);
	}
}

50622019
50622019
[][유재석 - 50, 김종국 - 40, 송지효 - 30]
3
유재석 - 50
김종국 - 40
송지효 - 30

유재석 ㅋㅋ 찾음 너 삭제

[김종국 - 40, 송지효 - 30]


내 코드


ch03_setQuiz


Person

package ch03_setQuiz;
/*
 * Person class 를 구현하세요
 * - 이름, 전화번호의 관리가 가능합니다
 */
public class Person {
	private String name;
	private String number;

	public Person() {
	}
	
	public Person(String name, String number) {
		this.name = name;
		this.number = number;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getNumber() {
		return number;
	}
	public void setNumber(String number) {
		this.number = number;
	}

	@Override
	public boolean equals(Object obj) {
		if(obj instanceof Person) {
			Person tmp = (Person)obj;
			if(!name.equals(tmp.name)) return false;
			if(!number.equals(tmp.number)) return false;
			return true;
		}
		return false;
	}

	@Override
	public int hashCode() {
		return name.hashCode() + number.hashCode();
	}

	@Override
	public String toString() {
		return "[ 이름 : " + name + " - 전화번호 : " + number + " ]";
	}
	}

PersonManager

package ch03_setQuiz;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;

/*
 * Person class 객체를 Set collection 으로 관리하는 PersonManager class 를 구현하세요
 * - 구현 방식은 ch01_list 팩키지의 MemberManager class 와 동일합니다
 */

public class PersonManager {

	private Scanner sc = new Scanner(System.in);
	private Set<Person> set;

	public PersonManager() {
		set = new HashSet<>();
	}

	// 메뉴
	public void menu() {

		while (true) {
			System.out.print("1.추가  2.삭제  3.목록 >> ");
			int select = sc.nextInt();

			switch (select) {
			case 1: // 추가
				insert();
				break;
			case 2: // 삭제
				delete();
				break;
			case 3: // 목록
				list();
				break;
			case 0: // 종료
				end();
			default:
				System.out.println("선택 오류~");
			}
			System.out.println();
		}

	} // menu()

	// 1. 전화번호 추가
	public void insert() {
		System.out.println("--- 번호   추 가 ---");
		System.out.print("이름 입력 > ");
		String name = sc.next();
		Iterator<Person> it = set.iterator();
		while (it.hasNext()) {
			Person man = it.next();
			if (man.getName().equals(name)) {
				System.out.println("동일한 이름이 저장되어 있습니다.");
				System.out.print("1. 번호 바꾸기 \n" + "2. 동일 이름 번호 추가 \n" + "3. 취소\n" + ">> ");
				int select = sc.nextInt();
				switch (select) {
				case 1:
					System.out.println("번호를 바꾸시려면 번호 입력 : ");
					it.remove();
					break;
				case 2:
					System.out.print("번호 입력 \n" + "ex) 010-0000-0000 \n" + ">> ");
					String number1 = sc.next();
					set.add(new Person(name, number1));
					return;
				case 3:
					return;
				}
			}
		}
		System.out.print("번호 입력 \n" + "ex) 010-0000-0000 \n" + ">> ");
		String number = sc.next();
		set.add(new Person(name, number));

	}// insert()

	// # findName() : 이름 검색
	public Person findName(String search) {
		for (Person man : set) {
			if (man.getName().equals(search))
				return man;
		}
		return null;
	}
	// # findNum() : 번호 검색
	public Person findNum(String search) {
		for (Person man : set) {
			if (man.getNumber().equals(search))
				return man;
		}
		return null;
	}

	// 2. 전화번호 삭제 // 어떤놈 삭제할지 정하기가 가능할까?
	public void delete() {
		System.out.println("--- 번호   삭 제 ---");
		System.out.println("--- 이름 검색 : ");
		String dname = sc.next();
		Person man = findName(dname);
		if (man == null) {
			System.out.println("검색 실패");
			return; // 메소드 종료
		}
		// 추가해보자
		else if (!(man == null)) {
			System.out.println(dname);
			int cnt =0;
			for (Person man1 : set) {
				System.out.println(man1);
				cnt ++;
			}
			if(cnt>1) {
				System.out.println("지울 번호를 입력하세요");
				String dnumber = sc.next();
				Person man1 = findNum(dnumber);
				set.remove(man1);
				System.out.println(dname + " 번호 삭제");
			}else if(cnt==1) {
				set.remove(man);
				System.out.println(dname + " 번호 삭제");
			}
		}
	} // delete()

	// 3. 전화번호 목록
	public void list() {
		System.out.println("--- 번호   목 록 ---");
		if (set.size() == 0)
			System.out.println("저장된 번호 없음");
		else {
			for (Person man : set) {
				System.out.println(man);
			}
			System.out.println("저장된 번호 수 : " + set.size());
		}
	} // list()

	// 0. 종료
	public void end() {
		System.out.println("--- Program End ---");
		System.exit(0);
	}

}

PersonMain

package ch03_setQuiz;

public class PersonMain {
	public static void main(String[] args) {
		PersonManager pmn = new PersonManager();
		pmn.menu();
	}
}

강사님 코드


ch03_setQuizT


Person

package ch03_setQuizT;

/*
 * Person class 를 구현하세요
 * - 이름, 전화번호의 관리가 가능합니다
 */

public class Person {

	private String name;
	private String phone;
	
	public Person(String name, String phone) {
		this.name = name;
		this.phone = phone;
	}
	
	public String getName() { return name; }
	public void setName(String name) {
		this.name = name;
	}
	
	public String getPhone() { return phone; }
	public void setPhone(String phone) {
		this.phone = phone;
	}
	
	public int hashCode() {
		return name.hashCode() + phone.hashCode();
	}
	
	public boolean equals(Object obj) {
		if(obj instanceof Person) {
			Person tmp = (Person)obj;
			if(!name.equals(tmp.name))
				return false;
			if(!phone.equals(tmp.phone))
				return false;
			return true;
		}
		return false;
	}
	
	public String toString() {
		return name + " - " + phone;
	}
	
}

PersonManager

package ch03_setQuizT;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;

/*
 * Person class 객체를 Set collection 으로 관리하는 PersonManager class 를 구현하세요
 * - 구현 방식은 ch01_list 팩키지의 MemberManager class 와 동일합니다
 */

public class PersonManager {

	private Scanner scanner = new Scanner(System.in);
	private Set<Person> set;
	
	public PersonManager() {
		set = new HashSet<>();
	}
	
	// 메뉴
	public void menu() {
		
		while(true) {
			System.out.print("1.추가  2.삭제  3.목록 >> ");
			int select = scanner.nextInt();
			
			switch(select) {
			case 1: // 추가
				insert();  break;
			case 2: // 삭제
				delete();  break;
			case 3: // 목록
				list();  break;
			case 0: // 종료
				end();
			default:
				System.out.println("선택 오류~");
			}
			System.out.println();
		}
		
	} // menu()
	
	// 전화번호 추가
	public void insert() {
		System.out.println("--- 전화번호 추가 ---");
		System.out.print("이름 입력 > ");
		String name = scanner.next();
		System.out.print("전화번호 입력 > ");
		String phone = scanner.next();
		set.add(new Person(name, phone));
	}// insert()
	
	// 전화번호 삭제
	public void delete() {
		System.out.println("--- 전화번호 삭제 ---");
		System.out.print("삭제 전화번호 입력 > ");
		String phone = scanner.next();
		
		Iterator<Person> it = set.iterator();
		while(it.hasNext()) {
			Person tmp = it.next();
			if(tmp.getPhone().equals(phone)) {
				it.remove();
				System.out.println(tmp.getName() + " 번호 삭제");
				return;
			}
		}
		System.out.println("삭제 실패~");
	} // delete()
	
	// 전화번호 목록
	public void list() {
		System.out.println("--- 전화번호 추가 ---");
		for(Person man : set) {
			System.out.println(man);
		}
		System.out.println();
	} // list()
	
	// 종료
	public void end() {
		System.out.println("- Program end -");
		System.exit(0);
	}
	
}

PersonMain

package ch03_setQuizT;

public class PersonMain {

	public static void main(String[] args) {
		
		PersonManager manager = new PersonManager();
		manager.menu();
		
	}
}

ch04_map


Member

package ch04_map;

public class Member {
	private String id;
	private String name;

	public Member(String id, String name) {
		this.id = id;
		this.name = name;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	@Override
	public String toString() {
		return id + " - " + name;
	}
}

ExHashMap

package ch04_map;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/*
 * HashMap
 * - key, value 
 * - key 	중복 가능
 * - value 	중복 불가
 * - 기존에 저장된 key 와 동일한 key 값을 저장하면 
 *   -> 기존 값은 없어지고 새로운 값으로 변경
 */
public class ExHashMap {
	public static void main(String[] args) {
		// HashMap<String, String> hm = new HashMap<>();
		Map<String, String> hm = new HashMap<>();

		// put() : 데이터 추가
		hm.put("무재석", "안티나");
		hm.put("소농민", "또뜨넘");
		hm.put("기명경", "기믕국생명");

		// 출력해보면 key 와 value 값 사이에 '=' 이 나옴
		// 묶여있다 생각하면 될거같음
		System.out.println(hm);

		System.out.println();
		// get( key ) : 데이터 가져오기
		System.out.println("소농민 소속 : " + hm.get("소농민"));

		System.out.println();
		// Iterator 쓸 때 2단계를 거쳐야함
		// key값에 대한 반복자를 만든다
		// key 값은 set으로 처리 -> 중복 불가

		// key 값만 모아 하나의 set 을 생성
		Set<String> ks = hm.keySet();

		// 동일한 key 값으로 다른 value 값을 새로 넣으면 수정 효과
		hm.put("무재석", "푸리");

		// keySet() 의 반복자(iterator) 생성
		Iterator<String> it = ks.iterator();
		while (it.hasNext()) {
			String key = it.next();
			String value = hm.get(key);
			System.out.println(key + " - " + value);
		}
		System.out.println();

		// remove() : 데이터 삭제
		// remove() 를 쓰면 value 값이 반환됨
		System.out.println("소농민 삭제 : " + hm.remove("소농민"));
		System.out.println("지송빠레 삭제 : " + hm.remove("지송빠레"));
		System.out.println(hm);

		System.out.println();

		// 삭제 진행 전에 사전에 확인

		String dkey = "무재석";
		// containsKey() : 해당 key 값이 있는지 확인
		if (hm.containsKey(dkey)) {
			hm.remove(dkey);
			System.out.println(dkey + " 삭제");
		} else {
			System.out.println("삭제 key 없음");
		}
		System.out.println(hm);
	}
}

{무재석=안티나, 소농민=또뜨넘, 기명경=기믕국생명}

소농민 소속 : 또뜨넘

무재석 - 푸리
소농민 - 또뜨넘
기명경 - 기믕국생명

소농민 삭제 : 또뜨넘
지송빠레 삭제 : null
{무재석=푸리, 기명경=기믕국생명}

무재석 삭제
{기명경=기믕국생명}


MemberManager

package ch04_map;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class MemberManager {

	// key:id value
	private Map<String, Member> map;

	public MemberManager() {
		map = new HashMap<>();
	}

	// checkId() : ID 확인
	public boolean checkId(String id) {
		if (map.containsKey(id))
			return true;
		return false;
	}// checkId()

	// 1. 회원 추가
	public void insert(String id, String name) {
		if (map.containsKey(id)) {
			System.out.println("중복 ID.. 다시 진행하셈 ㅋ");
			return;
		} else {
			map.put(id, new Member(id, name));
		}
	}// insert

	// 2. 회원 삭제
	public void delete(String id) {
		if (checkId(id)) {
			map.remove(id);
			System.out.println(id + " 삭제");
		} else
			System.out.println("없는 ID 입니다..");
	}// delete

	// 3. 회원 목록
	public void list() {
		Set<String> set = map.keySet();
		Iterator<String> it = set.iterator();
		while (it.hasNext()) {
			String key = it.next();
			Member value = map.get(key);
			System.out.println(value);
		}
	}// list

	// 0. 프로그램 종료
	public void end() {
		System.out.println("--- Program End ---");
		System.exit(0);
	}
}

MemberMain

package ch04_map;

import java.util.Scanner;

public class MemberMain {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		MemberManager manager = new MemberManager();
		
		while(true) {
			System.out.println("--- 회 원   관 리 ---");
			System.out.print("1.가입  2.삭제  3.목록 >> ");
			int select = sc.nextInt();
			
			switch(select) {
			case 1: // 가입 : id(key), name
				System.out.print("ID 입력 > ");
				String id = sc.next();
				if(manager.checkId(id)) {
					System.out.println("사용중인 ID 입니다");
				}else {
					System.out.print("이름 입력 > ");
					String name = sc.next();
					manager.insert(id, name);  
				}
				break;
			case 2: // 삭제
				System.out.print("삭제할 ID 입력 > ");
				String did = sc.next();
				manager.delete(did);  
				break;
			case 3: // 목록
				manager.list();  
				break;
			case 0: // 종료
				manager.end();
			default:
				System.out.println("선택 오류~");
			}
			System.out.println();
		}
	}
}

ch05_mapQuiz


Person

package ch05_mapQuiz;
/*
 * Person class 를 구현하세요
 * - 이름, 전화번호의 관리가 가능합니다
 */
public class Person {
	private String name;
	private String number;

	public Person() {
	}
	
	public Person(String name, String number) {
		this.name = name;
		this.number = number;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getNumber() {
		return number;
	}
	public void setNumber(String number) {
		this.number = number;
	}

	@Override
	public boolean equals(Object obj) {
		if(obj instanceof Person) {
			Person tmp = (Person)obj;
			if(!name.equals(tmp.name)) return false;
			if(!number.equals(tmp.number)) return false;
			return true;
		}
		return false;
	}

	@Override
	public int hashCode() {
		return name.hashCode() + number.hashCode();
	}

	@Override
	public String toString() {
		return "[ 이름 : " + name + " - 전화번호 : " + number + " ]";
	}
	
}

PersonManager


package ch05_mapQuiz;

import java.util.Scanner;

public class PersonMain {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		PersonManager manager = new PersonManager();

		boolean run = true; // 실행 : true, 종료 : false
		while (run) {
			int select = manager.printStartMessage();
			switch (select) {
			case 1: // 추가 : 이름으로 관리
				manager.insert();
				break;
			case 2: // 삭제 : 이름으로 삭제
				manager.delete();
				break;
			case 3: // 목록
				manager.view();
				break;
			case 4: // 수정 : 이름으로 전화번호 수정
				manager.modify();
				break;
			case 0: // 종료
				run = manager.end();
				break;
			default:
				System.out.println("선택 오류~");
				;
			}
			System.out.println();

		}

	}

}

PersonMain


package ch05_mapQuiz;

import java.util.Scanner;

public class PersonMain {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		PersonManager manager = new PersonManager();

		boolean run = true; // 실행 : true, 종료 : false
		while (run) {
			int select = manager.printStartMessage();
			switch (select) {
			case 1: // 추가 : 이름으로 관리
				manager.insert();
				break;
			case 2: // 삭제 : 이름으로 삭제
				manager.delete();
				break;
			case 3: // 목록
				manager.view();
				break;
			case 4: // 수정 : 이름으로 전화번호 수정
				manager.modify();
				break;
			case 0: // 종료
				run = manager.end();
				break;
			default:
				System.out.println("선택 오류~");
			}
			System.out.println();

		}

	}

}

ch05_mapQuizT


Person

package ch05_mapQuizT;

/*
 * Person class 를 구현하세요
 * - 이름, 전화번호의 관리가 가능합니다
 */

public class Person {

	private String name;
	private String phone;
	
	public Person(String name, String phone) {
		this.name = name;
		this.phone = phone;
	}
	
	public String getName() { return name; }
	public void setName(String name) {
		this.name = name;
	}
	
	public String getPhone() { return phone; }
	public void setPhone(String phone) {
		this.phone = phone;
	}
	
	public int hashCode() {
		return name.hashCode() + phone.hashCode();
	}
	
	public boolean equals(Object obj) {
		if(obj instanceof Person) {
			Person tmp = (Person)obj;
			if(!name.equals(tmp.name))
				return false;
			if(!phone.equals(tmp.phone))
				return false;
			return true;
		}
		return false;
	}
	
	public String toString() {
		return name + " - " + phone;
	}
	
}

PersonManager

package ch05_mapQuizT;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class PersonManager {

	private Scanner scanner = new Scanner(System.in);
	private Map<String, Person> map;
	
	public PersonManager() {
		map = new HashMap<>();
	}
	
	public String inputString(String message) {
		System.out.print(message);
		String value = scanner.next();
		return value;
	}
	
	// 추가 : 이름으로 관리
	public void insert() {
		System.out.println("--- 전화번호 추가 ---");
		String name = inputString("이름 입력 > ");
		if(map.containsKey(name)) {
			System.out.println("이름 중복!! 다시 진행하세요~");
		} else {
			String phone = inputString("전화번호 입력 > ");
			map.put(name, new Person(name, phone));
		}
	}// insert()
	
	// 삭제 : 이름으로 삭제
	public void delete() {
		System.out.println("--- 전화번호 삭제 ---");
		String name = inputString("삭제 이름 입력 > ");
		if(map.containsKey(name)) {
			map.remove(name);
			System.out.println(name + " 삭제");
		} else {
			System.out.println("없는 이름입니다~");
		}
	} // delete()
	
	// 목록
	public void view() {
		System.out.println("--- 전화번호 목록 ---");
		Set<String> set = map.keySet();
		for(String key : set) {
			Person value = map.get(key);
			System.out.println(value);
		}
		System.out.println();
	} // view()
	
	// 수정 : 이름으로 전화번호 수정
	public void modify() {
		System.out.println("--- 전화번호 수정 ---");
		String name = inputString("수정 이름 입력 > ");
		if(map.containsKey(name)) {
			Person man = map.get(name);
			System.out.println("현재 전화번호 : " + man.getPhone());
			String phone = inputString("수정 전화번호 입력 > ");
			map.put(name, new Person(name, phone));
		} else {
			System.out.println("없는 이름입니다..");
		}
	} // modify()
	
	// 종료
	public boolean end() {
		System.out.println("- Program end -");
		return false;
	}
	
}

PersonMain

package ch05_mapQuizT;

import java.util.Scanner;

public class PersonMain {

	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		PersonManager manager = new PersonManager();
		
		boolean run = true; // 실행 : true, 종료 : false
		while(run) {
			System.out.println("  ---  전화번호 관리 ---");
			System.out.print("1.추가  2.삭제  3.목록  4.수정\n>> ");
			int select = scanner.nextInt();
			
			switch(select) {
			case 1: // 추가 : 이름으로 관리
				manager.insert();  break;
			case 2: // 삭제 : 이름으로 삭제
				manager.delete();  break;
			case 3: // 목록
				manager.view();  break;
			case 4: // 수정 : 이름으로 전화번호 수정
				manager.modify();  break;
			case 0: // 종료
				run = manager.end();
				break;
			default:
				System.out.println("선택 오류~");;
			}
			System.out.println();
				
		}
		
	}
	
}

P14_exception


Ex01Exception

import java.util.Scanner;

/*
 * 예외 ( exceptoin )
 * - 잘못된 코드 또는 사용자의 잘못된 조작으로 인해 발생하는 프로글매 오류
 * -> 사람이 고칠 수 있는 오류 >> 해결 가능
 * 
 * 예외처리
 * - 프로그램에서 오류가 발생했을 때, 문제 내용을 처리하는 것
 *   Ex) try {
 *   	     문제가 발생할 수 있는 지역
 *   	 } catch ( 예외 타입 ) { ex) InputMismatchException
 *   		 예외처리 지역
 *    		 > catch 의 예외 타입으로 기본자료형은 사용할 수 없음
 *   	 } finally { // 필수 아님
 *   		 예외처리와 상관없이 무조건 실행되는 지역
 *   	 }
 */


public class Ex01Exception {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int candy= 0;
		int people= 0;
		
		try {
			System.out.print("사탕수 입력 > ");
			candy= sc.nextInt();
			System.out.print("사람수 입력 > ");
			people= sc.nextInt();
			
			int div = candy/people;
			int mod = candy%people;
			
			System.out.println("한 사람당 사탕 수 : " + div);
			System.out.println("남은 사탕 수 : " + mod);
			
		} catch (Exception e) {
			System.out.println("0으로 나눌 수 없음");
			System.out.println("상세한 내용"); 
			e.printStackTrace();
			System.out.println("조금 덜 상세한 내용");
			System.out.println(e.toString());
			System.out.println("가장 간략한 내용");
			// out -> err 로 하면 빨간색으로 나옴
			System.err.println(e.getMessage()); 
			
		} finally {
			System.out.println("- 계산 종료 -");
		}
	
	}
}

사탕수 입력 > 10
사람수 입력 > 0
0으로 나눌 수 없음
상세한 내용
java.lang.ArithmeticException: / by zero
at Ex01Exception.main(
Ex01Exception.java:34)
조금 덜 상세한 내용
java.lang.ArithmeticException: / by zero
가장 간략한 내용
- 계산 종료 -
/ by zero


Ex02Exception


public class Ex02Exception {
	public static void main(String[] args) {
		String[] sa = new String[] { "1", "2", "3" };
		int[] ia = new int[sa.length];

		try {
			for (int i = 0; i < 5; i++) {
				ia[i] = Integer.parseInt(sa[i]);
				System.out.println(ia[i] + " ");
			}
			System.out.println();
		} catch (NumberFormatException e) {
			e.printStackTrace();
			System.out.println("- NumberFormatException e -");
		} catch (ArrayIndexOutOfBoundsException e) {
			e.printStackTrace();
			System.out.println("- ArrayIndexOutOfBoundsException e -");
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("- Exception e -");
		}
	}
}

1
2
3
java.lang.ArrayIndexOutOfBoundsException: 3
          at Ex02Exception.main(Ex02Exception.java:9)
- ArrayIndexOutOfBoundsException e -


Ex03Exception

import java.util.Scanner;

public class Ex03Exception {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		
		int candy= 0;
		int people= 0;
		try {
			System.out.print("사탕수 입력 > ");
			candy= sc.nextInt();
			System.out.print("사람수 입력 > ");
			people= sc.nextInt();
			if(people<1) 
				throw new Exception("1미만 안됨");
			
			int div = candy/people;
			int mod = candy%people;
			
			System.out.println("한 사람당 사탕 수 : " + div);
			System.out.println("남은 사탕 수 : " + mod);
			
		} catch (Exception e) {
			System.err.println(e.getMessage()); 
		} finally {
			System.out.println("- 계산 종료 -");
		}
	}
}

사탕수 입력 > 10
사람수 입력 > 0
1미만 안됨
- 계산 종료 -


Calc

import java.util.Scanner;

public class Calc {
	public static int div(int a, int b) throws Exception {
		return a / b;
	}
}

Ex04Exception


public class Ex04Exception {
	public static void main(String[] args) {
		
		try {
			int res = Calc.div(10, 0);
			System.out.println("res : " + res);
		} catch (Exception e){
			e.printStackTrace();
		}
	}
}


java.lang.ArithmeticException: / by zero
          at Calc.div(
Calc.java:5)
          at Ex04Exception.main(
Ex04Exception.java:6)


QuizException

import java.util.Scanner;

public class QuizException {

	public static void main(String[] args) {

		// 사용자에게 ID 를 입력받습니다
		// 정상이면 사용 가능하고, 문제가 있으면 재입력 받아서 합니다
		// - ID 는 2 ~ 10 글자 사이만 가능합니다
		// ID 에 'admin' 단어가 들어가 있으면 안됩니다

		Scanner scanner = new Scanner(System.in);

		String userid = null;

		while (true) {

			try {

				System.out.print("ID 입력 > ");
				userid = scanner.next();

				if (userid.length() < 2 || userid.length() > 10)
					throw new Exception("2 ~ 10 글자 사이만 가능합니다~");
				if (userid.contains("admin"))
					throw new Exception("admin 은 포함할 수 없어요~");
				break;

			} catch (Exception e) {
				System.out.println(e.getMessage());
			}

		}
		System.out.println("ID : " + userid);

	}

}

ID 입력 > asddasasdasd
2 ~ 10 글자 사이만 가능합니다~
ID 입력 > admin
admin 은 포함할 수 없어요~
ID 입력 > adadadadad
ID : adadadadad


P15_file


import java.io.File;
import java.io.IOException;
import java.sql.Date;

public class ExFile {
	public static void main(String[] args) throws IOException {
		
		// 폴더 경로를 가지는 객체 생성
		// \ << 폴더 구분
		// File path = new File("C:\\Users\\Administrator\\Desktop\\Fintech\\java\\FileTest");
		
		// 폴더 구별자 : File.separator
		File path = new File("C:"+ File.separator
							+ "Users"+ File.separator
							+ "Administrator"+ File.separator
							+ "Desktop"+ File.separator
							+ "Fintech"+ File.separator
							+ "java"+ File.separator
							+ "FileTest");
		
		// 해당 위치에 폴더가 있는지 확인
		if(path.exists() == false) {
			path.mkdir();
			System.out.println("폴더 생성");
		}
		
		// 폴더 위치, 파일명을 가지는 객체 생성
		File mf = new File(path, "test.txt");
		
		// 경로에 파일이 없으면 생성
		// 예외전가를 시켜야함
		if(mf.createNewFile()) {
			System.out.println(mf.getName() + " 파일 생성");
		} else {
			System.out.println(mf.getName() + " 중복 파일");
		}
		
		System.out.println("--- 파일 정보 ---");
		System.out.println("절대 경로 : " + mf.getAbsolutePath());
		System.out.println("생설 일자 : " + new Date(mf.lastModified()));
		System.out.println("파일 크기 : " + mf.length()); // 기록된 내용
		
	}
}

test.txt 중복 파일
--- 파일 정보 ---
절대 경로 : C:\Users\Administrator\Desktop\Fintech\java\FileTest\test.txt
생설 일자 : 2023-09-08
파일 크기 : 1

profile
Fintech

0개의 댓글