일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- html#HTML#프론트엔드#개발자#코딩#국비지원#국비교육#국비지원프론트엔드#국비지원HTML#국비지원html#국비프론트엔드
- #
- 국비지원JAVA#국비지원자바#프로그랭#JSP#국비지원JSP#국비교육JSP#웹개발자#코딩
- tibero#티베로#이중화#failvover
- Java#정처기#비트연산자#정보처리기사
- 자바
- 항해플러스#항해#항해플러스3기#회고
- #java#JAVA#프로그래밍#웹개발자
- 자바#Java#배열예시#연습#기초다지기
- 쿼리스트링#쿼리문자열#바인딩
- 개발자도서#개발자책#도메인#DDD#도메인주도개발시작하기#개발스터디#
- 국비지원JAVA#국비교육JAVA#국비지원자바#국비교육자바#JSP#SERVLET#서블릿#
- Java#컴파일러#자바컴파일러#
- 항해99 #항해플러스 #주니어개발자 #주니어개발자역량강화 #주니어개발자멘토링 #개발자사이드프로젝트 #코딩부트캠프 #코딩부트캠프후기
- db#데이터베이스#오라클#sql
- Resource #
- IntelliJ#인텔리제이#인텔리#단축키
- java
- 개발자#it도서#도메인#DDD#ddd
- 국비지원JAVA
- 국비지원자바#국비교육자바#국비지원java#국비교육java#자바스크립트#프론트엔드
- Spring#spring#스프링#스프링프레임워크#스프링자동주입#스프링생성자#스프링기본#국비지원#국비교육#국비지원스프링
- 국비지원#국비교육
- Java#JAVA#매개변수
- 국비지원#국비교육#국비지원자바#국비교육자바#css#HTML#JAVA
- Java#java#메모리영역#클래스로더#가비지컬렉터
- spring#Spring#RequestBody#ResponseBody
- 프로그래밍
- Java#java#자바#다오#디티오#브이오#dao#dto#vo
- Spring#spring#스프링#스프링프레임워크#스프링의존성주입#스프링생성자#스프링기본#국비지원#국비교육#국비지원스프링
- Today
- Total
개린이 개발노트
국비지원 JAVA(자바) 프로그래밍(전화번호,이메일 정규식,정규표현식,ArrayList,LinkedList) 본문
국비지원 JAVA(자바) 프로그래밍(전화번호,이메일 정규식,정규표현식,ArrayList,LinkedList)
개린이9999 2022. 12. 1. 10:20자바API 이어서
DATE 클래스 , 요새 사용잘안하고 Calender 클래스를 이용함.
package 자바API;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Sample01 {
public static void main(String[] args) {
Date now = new Date();
System.out.println(now);
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd E HH:mm:ss");
System.out.println(sf.format(now)); //
}
}
Date는 권장은안함-> Calender로 처리
Calender
Calender 인터페이스 인터페이스는 객체생성이 안됨.
package 자바API;
import java.util.Calendar; // import
public class Sample02 {
public static void main(String[] args) {
Calendar today = Calendar.getInstance(); //메소드 호출
System.out.println(today.get(Calendar.YEAR));// filed에서 상수값 호출, ex)YEAR,MONTH, MONTH는(0부터11)그래서+1을 해줘야함, //내가 원하는 것만 볼 수 있음.
// ex) MINUTE,AM.PM,
System.out.println(today.get(Calendar.WEEK_OF_YEAR)); // 1월1일부터해서 현재 몇번쨰 주인지 알려줌 //지금은 49번쨰 주다.
System.out.println(today.get(Calendar.DAY_OF_WEEK)); // DAY_OF_WEEL 에서 1은 일요일 7은 토요일 1부터~7까지 표현
//today.get(Calendar. 이용해서 2022년 12월 1일 출력하기
System.out.println(today.get(Calendar.YEAR)+"년"+(today.get(Calendar.MONTH)+1)+"월"+today.get(Calendar.DATE)+"일");
}
}
Arrays 클래스 ( static 메서드 (정적 메서드)) 라서 바로바로 사용 가능!
package 자바API;
import java.util.Arrays;
public class Sample03 {
public static void main(String[] args) {
String[] arr = {"홍","이","강","김"};
Arrays.fill(arr,1,3,"X"); // (arr1번방부터 3번방전까지x로 채워라) -> 1번방과 2번방에 있는것만 x로 바뀌어서 나타남
// Arrays.fill(arr,"임"); // fill 메서드를 이용해서 전부 임으로 채워라
for(String a: arr)
System.out.println(a);
}
}
binarySearch() 메서드, 바이너리
이진검색알고리즘
// 이진검색알고리즘 1-50-> 25 업 부르면 ->37부름
// 이진 검색하려면 무조건 정렬이 되어있어야 합니당
package 자바API;
import java.util.Arrays;
import javax.swing.text.DefaultEditorKit.CopyAction;
public class Sample03 {
public static void main(String[] args) {
int[] arr = new int[1000];
for(int i=0;i<1000;i++) {
arr[i] = i + 1;
}
// 위에 있는 배열과동일한 배열을 만들고 싶을 때
int[] arr2 = Arrays.copyOf(arr, 5);
for(int a : arr2) {
System.out.print(a); // 0번방부터 4번방까지 복사 0번바의값부터 4번방의 값까지 알려줌
}
}
}
array 클래스
package 자바API;
import java.util.Arrays;
public class Sample03 {
public static void main(String[] args) {
//array 클래스
int[] arr = {5,3,1,4,2};
Arrays.sort(arr);
for(int a: arr) {
System.out.print(a);
}
}
}
//DecimalFormat - 숫자 형식 지정
DecimalFormat - 숫자 형식 지정- 소수점 부분
정규식, 정규표현식, 크롤링
Pattern, Matcher
package 자바API;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Sample05 {
public static void main(String[] args) {
Pattern p = Pattern.compile("b[a-z]*");
//"b[a=z]*" 첫글자는 무조건b여야 되고 대괄호 안에 a-z까지라고 되어있는데 그것만 입력가능// *다음에는 뭐가 나오든 상관없음
Matcher m;
m = p.matcher("bat");
System.out.println(m.matches());
}
}
결과값은 트루나 폴스로, 이건 트루
정규식 ,정규표현식
package 자바API;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Sample05 {
public static void main(String[] args) {
//패턴 클래스를 이용해서 하나하나 비교하는 작업
String[] patterns = {
".",
"[a-z]?",
"[0-9]+",
"0[1-9]*",
"^[0-9]",
"[a-z]*",
"[a-z]+",
"02|010",
"\\s",
"\\S",
"\\d",
"\\w",
"\\W"
};
//단순 배열 2개 만들어 둔 것
String[] datas = {
"bat",
"021231234",
"12345",
"011",
"bed",
"02",
"A",
"9",
"a",
"*"
};
for(String d : datas) {
System.out.print(d + "문자와 일치하는 패턴 : ");
for(String p : patterns) {
Pattern pattern = Pattern.compile(p); // <-- 정규식
Matcher m = pattern.matcher(d);
if(m.matches())
System.out.print(p + ", ");
}
System.out.println();
}
}
}
결과값
bat문자와 일치하는 패턴 : [a-z]*, [a-z]+,
021231234문자와 일치하는 패턴 : [0-9]+, 0[1-9]*,
12345문자와 일치하는 패턴 : [0-9]+,
011문자와 일치하는 패턴 : [0-9]+, 0[1-9]*,
bed문자와 일치하는 패턴 : [a-z]*, [a-z]+,
02문자와 일치하는 패턴 : [0-9]+, 0[1-9]*, 02|010,
A문자와 일치하는 패턴 : ., \S, \w,
9문자와 일치하는 패턴 : ., [0-9]+, ^[0-9], \S, \d, \w,
a문자와 일치하는 패턴 : ., [a-z]?, [a-z]*, [a-z]+, \S, \w,
*문자와 일치하는 패턴 : ., \S, \W,
전화번호, 이메일 정규식 간단하게
전화번호 = (0\\d{1,2}-(\\d{3,4}-(\\d{4})))
이메일 = (\\w+)@(\\w+).(\\w+)
컬렉션 프레임워크-배열
List/Set/ 비슷한 느낌
Map
List 순서가 있음, 데이터 중복 가능
Set 순서가 없음, 데이터 중복 불가능
Map 순서가 없음 , 키와 값으로 구문 key: 이름 value:홍길동 key: 나이 value:20 key-> 중복 불가능 value-> 중복가능 |
remove
제네릭,제네릭스 어떤 자료형 데이터를 넣을지 명시해주는 기능
예시)
ArrayList<String> user = new ArrayList<String>(); String만 써라
ArrayList<String> user = new ArrayList<>();-> 이렇게 축약
-> 문자열만 사용 가능
ArrayList<Integer> user = new ArrayList<>();
-> 정수형만 사용 가능
ArrayList사용할 때 주의사항 ↓
ArrayList < 풀네임만 사용 가능 ex) Integer,Chracter 등)>
ArrayList
package 컬렉션프레임워크;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
public class Sample02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] names = { "가렌", "갈리오", "갱플랭크" };
ArrayList<String> name = new ArrayList<>(Arrays.asList(names));
System.out.println(name);
// ArrayList<String> name2 = new ArrayList<>(Arrays.asList(추가할 내용들 작성하면 됨));
ArrayList<String> name2 = new ArrayList<>(Arrays.asList("박", "이", "김"));
System.out.println(name2);
// System.out.println(String.join("출력할 객체에 넣고싶은 문자열",출력할객체이름 ));
System.out.println(String.join("/", name2));
name2.sort(Comparator.naturalOrder());
System.out.println(name2);
name2.sort(Comparator.reverseOrder());
System.out.println(name2);
}
}
LinkedList
package 컬렉션프레임워크;
import java.util.ArrayList;
import java.util.LinkedList;
public class Sample03 {
public static void main(String[] args) {
ArrayList alist = new ArrayList();
LinkedList llist = new LinkedList();
for(int i = 0; i<10000; i++) {
alist.add(i);
llist.add(i);
}
System.out.println("ArrayList");
long start = System.currentTimeMillis();
for(int i = 0; i<alist.size(); i++)
alist.get(i);
long end = System.currentTimeMillis();
System.out.println(end-start);
System.out.println("LinkedList");
start = System.currentTimeMillis();
for(int i = 0; i<llist.size(); i++)
llist.get(i);
end = System.currentTimeMillis();
System.out.println(end-start);
}
}
package 컬렉션프레임워크;
import java.util.ArrayList;
import java.util.LinkedList;
public class Sample04 {
public static void main(String[] args) {
ArrayList alist = new ArrayList();
LinkedList llist = new LinkedList();
for(int i = 0; i < 100000; i++) {
alist.add(i);
llist.add(i);
}
System.out.println("ArrayList");
long start = System.currentTimeMillis();
for(int i = 0; i<10000; i++)
alist.add(500, i); //500번 배열방에 추가 시키는 작업
long end = System.currentTimeMillis();
System.out.println(end - start);
System.out.println("LinkedList");
start = System.currentTimeMillis();
for(int i = 0; i<10000; i++)
llist.add(500, i); //500번 배열방에 추가 시키는 작업
end = System.currentTimeMillis();
System.out.println(end - start);
}
}
속도비교하기
Set 관련 - 중복안되고 순서도 없음
package 컬렉션프레임워크;
import java.util.HashSet;
public class Sample05 {
public static void main(String[] args) {
HashSet<String> set =new HashSet<String>();
set.add("Hello");
set.add("Java");
set.add("World");
System.out.println(set); // set에서는 순서가 없다.
}
}
package 컬렉션프레임워크;
import java.util.Arrays;
import java.util.HashSet;
public class Sample05 {
public static void main(String[] args) {
HashSet<String> set = new HashSet<String>();
set.add("Hello");
set.add("Java");
set.add("World");
System.out.println(set); // set에서는 순서가 없다.
set.addAll(Arrays.asList("HTML", "CSS", "JS"));
System.out.println(set);
set.remove("Java");
System.out.println(set.remove("Java"));
System.out.println(set);
}
}
Set은 순서가 없지만 순서가 필요한 경우가 생겼을 때!
TreeSet 순서를 기억해줌 (오름차순 정렬)
package 컬렉션프레임워크;
import java.util.Arrays;
import java.util.TreeSet;
public class Sample06 {
public static void main(String[] args) {
TreeSet ts =new TreeSet(Arrays.asList(4,5,10,2,7));
System.out.println(ts); //
}
}
Treeset -> 결과값도출
Desecend 디센드
package 컬렉션프레임워크;
import java.util.Comparator;
public class Descend implements Comparator {
public int compare(Object o1, Object o2) {
Comparable c1 = (Comparable)o1;
Comparable c2 = (Comparable)o1;
return c1.compareTo(c2)*-1;
}
}
package 컬렉션프레임워크;
import java.util.SortedSet;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
SortedSet set = new TreeSet(); //다형성에 형태
String from = "bat";
String to = "d";
set.add("and");
set.add("alist");
set.add("batman");
set.add("aha");
set.add("cola");
set.add("Cola");
set.add("ddr");
set.add("dance");
set.add("dEEE");
set.add("deee");
set.add("ever");
set.add("giant");
set.add("zoo");
System.out.println(set);
System.out.println(set.subSet(from,to));
set = new TreeSet(new Descend());
}
}
Iterator
List-Set-Map
hasnext
package 컬렉션프레임워크;
import java.util.ArrayList;
import java.util.Iterator;
public class Sample07 {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
Iterator iter = null;
iter=list.iterator(); //while문으로 많이 돌리는 편
while(iter.hasNext()) { //while 안의 조건식이 참일때 반복을 계속하다가 거짓일 경우 종료
System.out.print(iter.next()+" ");
}
}
}
package 컬렉션프레임워크;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
public class Sample08 {
public static void main(String[] args) {
Iterator it = null;
List list = new ArrayList();
Set set = new HashSet();
for(int i=1;i<=5;i++) {
list.add(i);
set.add(i+5);
}
System.out.println(list); //데이터
System.out.println(set);
it=set.iterator();
System.out.println("List");
System.out.println(it);
iteratorPrint(it);
}
private static void iteratorPrint(Iterator it) {
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
Map - 키는 (key) (key는 주소값이라고 생각하셈) 중복안됨 ,값은(value는 내용물이라고 생각하셈) 중복가능
package 컬렉션프레임워크;
import java.util.HashMap;
public class Sample09 {
public static void main(String[] args) {
HashMap<Integer, String> hm = new HashMap<>();
hm.put(1001, "고길동");
hm.put(1002, "aaaa");
hm.put(1003, "bbbbb");
System.out.println(hm);
for (int key : hm.keySet())
System.out.println(key + "/" + hm.get(key));
hm.remove(1002);
for (int key : hm.keySet()) {
System.out.println(key + "/" + hm.get(key));
}
}
}
package 컬렉션프레임워크;
import java.util.HashMap;
public class Sample09 {
public static void main(String[] args) {
HashMap<Integer, String> hm = new HashMap<>();
hm.put(1001, "고길동");
hm.put(1002, "aaaa");
hm.put(1003, "bbbbb");
for(String value:hm.values())
System.out.println(value);
}
}
package 컬렉션프레임워크;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Sample10 {
public static void main(String[] args) {
String[] names = { "홍길동", "김유신", "이순신" }; // key값
int[] nums = { 1234, 4567, 9874 }; // value값
Map map = new HashMap();
for (int i = 0; i < 3; i++) {
map.put(names[i], nums[i]);
}
System.out.println(map);
Set entry = map.entrySet();
for(Object o: entry) {
Map.Entry m = (Map.Entry) o;
System.out.println("key:"+m.getKey()+"value: "+m.getValue());
}
}
}
커피만들기
클래스
package 커피;
public class Menuinfo {
String name;
int price;
String group; // 커피베이스인지 아닌지 등
String type; // 정보저장
public Menuinfo(String name, int price, String group, String type) {
this.name = name;
this.price = price;
this.group = group;
this.type = type;
}
}
main문
package 커피;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
///map 생성 (키와 값을 넣어줘야 되고) 제너널로 키에는 문자열만, 값에는 메뉴인포라는 객체를 넣을거다라고 지정
//처음에는 비워져 있는 상태
static Map<String, MenuInfo> map = new HashMap<>();
public static void main(String[] args) {
//메서드 호출
makeMenu();
selectMenu();
}
//메서드 생성 위치
static void makeMenu() {
//메뉴를 입력받아서 작동
//map.put("key", "value")
// new MenuInfo("아메리카노", 2000, "커피", "기본커피")) <-- value 값을 새롭게 객체를 생성해서 "아메리카노" 키 값에 다 넣어진것
map.put("아메리카노", new MenuInfo("아메리카노", 2000, "커피", "기본커피"));
map.put("카라멜마끼아또", new MenuInfo("카라멜마끼아또", 3500, "커피", "달달한커피"));
map.put("에스프레소", new MenuInfo("에스프레소", 1500, "커피", "쓴커피"));
}
static void selectMenu() {
Scanner sc = new Scanner(System.in);
String key;
//while문으로 true일때 계속 반속
while(true) {
System.out.println("메뉴를 선택해주세요");
System.out.println("[1] 메뉴보기 [2] 메뉴조회 [3] 메뉴추가 [4] 메뉴삭제 [5] 메뉴변경 [6] 종료");
int selMenu = sc.nextInt();
//위에서 입력한 값이 스위치문에서 그 값에 맞게 출력
switch(selMenu) {
//케이스 1일 때 아래 내용 출력
case 1 : //메뉴보기
System.out.println("===메뉴보기===");
//map.keySet() <--- 이걸 e에 넣고 이때 e가 키값이 된다.
for(String e : map.keySet()) {//key값을 다 받아와서 반복
// map.get(e).name 객체에 저장되어 있는 name이라는 변수를 불러와 출력
System.out.println("메뉴 : " + map.get(e).name); //map.get(e).name 맵에 저장되어 있는 객체에 이름을 가져와서 출력
System.out.println("가격 : " + map.get(e).price); //맵에 저장되어 있는 객체에 가격을 가져와서 출력
System.out.println("분류 : " + map.get(e).group); //맵에 저장되어 있는 객체에 분류를 가져와서 출력
System.out.println("타입 : " + map.get(e).type); //맵에 저장되어 있는 객체에 타입을 가져와서 출력
System.out.println("------------------------");
}
break;
case 2 : //메뉴조회
System.out.println("조회할 메뉴를 입력 : ");
key = sc.next(); //String key; <-- 위에서 문자열 key변수 선언함
if(map.containsKey(key)) { //바로 위에 key = sc.next(); key를 if안 조건식에 넣어준다.
System.out.println("메뉴 : " + map.get(key).name);
System.out.println("가격 : " + map.get(key).price);
System.out.println("분류 : " + map.get(key).group);
System.out.println("타입 : " + map.get(key).type);
} else { //기존에 있는 메뉴 중에 없는 메뉴를 입력할 경우
System.out.println("입력한 메뉴가 없음");
}
break;
case 3 :
System.out.println("추가할 메뉴 입력 : ");
key = sc.next();
if(map.containsKey(key)) {
System.out.println("중복 되는 메뉴 입니다"); //저장된 키 값 중에 같은 메뉴를 입력할 경우 프린트문 출력
} else { //아예 다른 값을 입력할 경우 아래 정보 입력 후 키 값에 저장
System.out.println("가격 입력 : ");
int price = sc.nextInt();
System.out.println("분류 입력 : ");
String group = sc.next();
System.out.println("설명 입력 : ");
String type = sc.next();
//위에 정보를 map에 추가로 넣어줘야 되기 때문에 .put 사용
//put 기존에 없는걸 추가 시키는 것
map.put(key, new MenuInfo(key, price, group, type));
}
break;
case 4 :
System.out.println("삭제할 메뉴 입력 : ");
key = sc.next();
if(map.containsKey(key)) {
map.remove(key); //저장된 키 값 중 입력한 값을 삭제 remove
System.out.println(key + "가 삭제됨");
} else {
System.out.println("삭제할 메뉴가 없음");
}
break;
case 5:
System.out.println("수정할 메뉴를 입력 : ");
key = sc.next();
if(map.containsKey(key)) { //키 값에 보관 되어 있는 것 중 위에서 입력받은 키 값에 정보를 수정하여 변경하도록
System.out.println("가격 입력 : ");
int price = sc.nextInt();
System.out.println("분류 입력 : ");
String group = sc.next();
System.out.println("설명 입력 : ");
String type = sc.next();
// 정보를 수정하기 위해서는 .replace 기능 사용
// replace 기존에 있는걸 수정하는 것
// put 보다 효쥴적이다.
map.replace(key, new MenuInfo(key, price, group, type));
} else {
System.out.println("수정할 메뉴가 없음");
}
break;
case 6:
System.out.println("종료합니다");
return; //보내는것 없지만 그냥 그 메서드를 종료시켜라
default:
System.out.println("잘못 입력");
}
}
}
}
'국비지원(국비교육) 웹 개발자 과정' 카테고리의 다른 글
국비지원 JAVA(자바) 프로그래밍 (람다,Operator,Predicate,andThen,compose,anyMatch) (0) | 2022.12.05 |
---|---|
국비지원 JAVA(자바) 프로그래밍 (제네릭,제네릭스,람다,람다식) (0) | 2022.12.02 |
국비지원 JAVA(자바) 프로그래밍(인터페이스, 다형성, 내부클래스, 여러가지 예외처리방법, 정규식, 정규표현식, 자바API) (0) | 2022.11.30 |
국비지원 JAVA(자바) 프로그래밍 웹개발자 ( 상속,다형성,추상화) (0) | 2022.11.29 |
국비지원 JAVA(자바) 프로그래밍 웹개발자 (싱글톤, 캡슐화, 상속화, 오버라이딩, 다형성 까지) (0) | 2022.11.28 |