이런 값을

List 일 경우, \ 가 붙는 데이터이고, 단일 데이터의 경우에는 \ 가 없다.

어떤게 올지 모르고, 둘 중 하나가 온다고 했을 때

2023.02.27(종일) ~ 2023.02.27(종일) \ 2023.02.29(종일) ~ 2023.02.29(종일)
2023.02.27(종일) ~ 2023.02.27(종일)

이렇게 바꾸려면?

String 2023.02.27(종일)
List<String> 2023.02.27(종일), 2023.02.29(종일)
/**
 * 여러 일정을 함께 등록한 경우 "/" 로 구분되는 것을 나눈다
 */
String[] durations = duration.split("/");

/**
 * 나눈 결과 N 개를 List<String> 형태로 변환한다.
 */
List<String> durationslist = Arrays.stream(durations).collect(Collectors.toList());

/**
 * durationslist index : 2023.02.27(종일) ~ 2023.02.27(종일)\
 * result : 2023.02.27(종일)
 */
String regEx = "([0-9]{4}\\.[0-9]{2}\\.[0-9]{2})\\(([가-힣]{2})\\)[ \\t\\n\\x0B\\f\\r]~[ \\t\\n\\x0B\\f\\r]([0-9]{4}\\.[0-9]{2}\\.[0-9]{2})\\(([가-힣]{2})\\)";
Pattern pattern = Pattern.compile(regEx);

/**
 * Durations 객체에 값 할당
 */
List<Duration> list = new ArrayList<>();
durationslist.forEach(x -> {
    Matcher matcher = pattern.matcher(x.trim());
    Duration durationObj = null;
    while(matcher.find()){
        durationObj = new Duration();
        durationObj.setStartDate(matcher.group(1).concat(":"+ matcher.group(2)));
        durationObj.setEndDate(matcher.group(3).concat(":"+ matcher.group(4)));
    }
    list.add(durationObj);
});
return list;

 

 

'JAVA > 정규식' 카테고리의 다른 글

[JAVA] 문자열 정규식으로 자르기  (0) 2019.11.12
[JAVA] Arrays  (0) 2019.11.05

1. Map 자료형에 값을 넣고, foreach 문으로 값을 출력하는 예시

Map<String, String> map = null;
map.put("이름", "홍길동");
map.put("나이", "1세");




		

Map 자료형은 <key, value>의 쌍으로 이루어진 자료형이다.

Map 객체에 put메서드를 이용하여, map.put("이름", "홍길동"); 으로 값을 객체에 넣을 수 있다.

중복을 허용하지 않는다. 정확히는 값의 중복이 아니라 "key" 값의 중복을 허용하지 않기때문에 같은 키 이름으로 다른값이 들어가면, 마지막에 들어간 값으로 덮어쓰기 된다.

 

2. 들어 있는 값을 출력하는 방법에는 여러가지가 있다.

     

// 01. entrySet()
for (Map.Entry<String, String> entry : map.entrySet()) {
		System.out.println(String.format("key : %s , value : %s", entry.getKey(), entry.getValue()));
}

// 02. keySet()
for(String key : map.keySet()){
	System.out.println("key : " + key + ", val : " + map.get(key));
}

// 03. entrySet.iterator()
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while(it.hasNext()){
	Map.Entry<String, String> entry = (Map.Entry<String, String>) it.next();
    System.out.println("key : " + entry.getkey()+ ", val : " + entry.getValue());
}

//04. KeySet().iterator
Iterator<String> it = map.keySet().iterator();
while(it.hasNext()){
	System.out.println("key : " + it.next() + ", val : " + map.key(it.next()));
}

'JAVA' 카테고리의 다른 글

array to ArrayList  (0) 2020.07.28
[JAVA] - 자바 Email 전송하기  (0) 2019.12.26
[JAVA] window builder - login  (0) 2019.11.18
[JAVA] WINDOW BUILDER  (0) 2019.11.18
[JAVA] 읽으면서 정리하기  (0) 2019.11.10
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;

public class Solution {
	public String solution(String[] participant, String[] completion) {
        
		String answer = "";
        
        ArrayList<String> arr = new ArrayList<String>();
        ArrayList<String> arr1 = new ArrayList<String>();
        
        Collections.addAll(arr, participant);
        Collections.addAll(arr1, completion);
        
        Iterator<String> iter = arr.iterator();
        Iterator<String> iter1 = arr1.iterator();

        
        while (iter.hasNext())
        {
        	System.out.println(iter.next());
        }
        while (iter1.hasNext())
        {
        	System.out.println(iter1.next());
        }
        return answer;
	}
	
	public static void main(String[] args) {
		Solution sol = new Solution();
		
		String[] participant = {"a", "b", "c"};
		String[] completion = {"a", "c"};
		
		sol.solution(participant, completion);
	}
}

'JAVA' 카테고리의 다른 글

[Java] Map 자료형 저장, 출력  (0) 2021.01.07
[JAVA] - 자바 Email 전송하기  (0) 2019.12.26
[JAVA] window builder - login  (0) 2019.11.18
[JAVA] WINDOW BUILDER  (0) 2019.11.18
[JAVA] 읽으면서 정리하기  (0) 2019.11.10

인터넷에 돌아다니는 소스를 수정했습니다.

javax.mail.jar는 메일 보내는 라이브러리 파일입니다. 클래스가 구현되있어요.

 

MailSendTest.java와 SendMail.java를 입맛에 맞춰 바꾸었습니다.

 

MailSendTest.java 부분에서 SendMail.java 객체를 생성해서 

 

String 변수 값을 본인의 이메일 계정에 맞추어 테스트 하면 됩니다.

 

저는 네이버로 했기 때문에 네이버로 테스트했고,

 

메일 방식이 SSL과 TSL이 두개로 나뉘니 사이트마다 바꿔서 쓰시면 됩니다.

 

저는 JSP에서 사용하기 위해 수정한 것입니다. 

 

 

javax.mail.jar
0.63MB
MailSendTest.java
0.00MB
SendMail.java
0.00MB

 

'JAVA' 카테고리의 다른 글

[Java] Map 자료형 저장, 출력  (0) 2021.01.07
array to ArrayList  (0) 2020.07.28
[JAVA] window builder - login  (0) 2019.11.18
[JAVA] WINDOW BUILDER  (0) 2019.11.18
[JAVA] 읽으면서 정리하기  (0) 2019.11.10

1) login 창(화면 1)

   

   ID     "TextField"

   PW   "TextField"

   BUTTON "Login"  BUTTON "Close"

 

   if(Login) click   <<-- 이벤트

   {

       db와 연결 시도  - try catch finally

       1)ID 필드에 입력한 ID를 저장

       2)PW 필드에 입력한 PW를 저장

       

       DB에서 조회를 시도

       3) DB에서 ID필드에 해당하는 정보 가져오기

       4) DB에서 PW필드에 해당하는 정보 가져오기

       ex) select * from (해당db의table) where id = 입력받은 ID && pw = 입력받은 PW 로 조회

      

       반환받는 값으로 ? 로그인 실패 성공 판별

 

       성공{ 화면 2로 ID PW 넘겨주면서 화면 2 창 띄우기 }

       실패{ login창에 로그인 실패 문구 띄우기 }

   }

  

  if(Close) click

  {

      창 닫기

  }

  

  

2) login 후에 사용할 화면! (화면 2)

  

   화면 1에서의 ID PW 정보를 유지!

  

  

'JAVA' 카테고리의 다른 글

array to ArrayList  (0) 2020.07.28
[JAVA] - 자바 Email 전송하기  (0) 2019.12.26
[JAVA] WINDOW BUILDER  (0) 2019.11.18
[JAVA] 읽으면서 정리하기  (0) 2019.11.10
추상클래스  (0) 2019.10.30

https://download.eclipse.org/windowbuilder/lastgoodbuild/

 

Eclipse software repository | The Eclipse Foundation

The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 360 open source projects, including runtimes, tools and frameworks.

download.eclipse.org

 

HELP - INSTALL NEW SOFTWARE - https://download.eclipse.org/windowbuilder/lastgoodbuild/ ADD시키기

 

'JAVA' 카테고리의 다른 글

[JAVA] - 자바 Email 전송하기  (0) 2019.12.26
[JAVA] window builder - login  (0) 2019.11.18
[JAVA] 읽으면서 정리하기  (0) 2019.11.10
추상클래스  (0) 2019.10.30
[JAVA] 추상클래스/인터페이스  (0) 2019.10.08

 

public class Test
{
	public static void main(String[] args)
	{
		//문자열 정규식으로 자르기                                                ,.ㅣ 
		String src = "이름:홍길동, Java:100, HTML:80, Script:85";
		String[] result = src.split("[:,]");
		
		//for each문
		for(String resul: result)
		{
			System.out.println(resul.trim()); //trim() 공백을 없애는 메서드
		}
	}
}

 

'JAVA > 정규식' 카테고리의 다른 글

[정규식] - String 인 날짜 관련  (0) 2023.10.12
[JAVA] Arrays  (0) 2019.11.05
변수

변수가 뭐냐고 물으면 이 생각이 먼저 남.

변수는 그릇과 같다. 작은 그릇에 큰 음식을 담을 수 없는 것 처럼.

그릇의 이름은 변수의 이름과 대응되고 그릇의 특징은 자료형에 대응된다.

 

이제 저 표현은 익숙해 졌기 때문에 좀 더 프로그래머 같은 표현으로 바꾸어기억해보자.

 

프로그램 관점에서는 변수란? 변하는 값을 저장할 수 있는 메모리의 공간이다.

메모리 공간을 사용할 것인데 그 공간은 특정한 형태의 자료를 저장하며 그 형태를 타입이라하고

저장된 곳을(저장된 메모리공간) 접근하기위해 위해 이름을 정해주는 것이 변수명이다. 메모리 주소를 안다면 변수 없이도 접근이 가능하겠지만 너무 비효율적이다.

 

변수 선언의 방법

자료형 변수명 = 리터럴;

int number = 100;

 

1) int 타입의 변수 number에 100을 할당한다. 라고 읽음

2) 리터럴은 변수에 할당되기 전의 값을 말함

3) = 는 대입연산자라고 함

 

자료형

1) 기본형과 참조형

 

기본형 (Primitive Type)

 

 a ) 문자형 char

 b ) 숫자 byte, short, int, long, float, double

 c ) 논리형 boolean

 

참조형 (Reference Type)

 

  a ) 클래스 타입

  b ) String 타입 등등

 

 

'JAVA' 카테고리의 다른 글

[JAVA] window builder - login  (0) 2019.11.18
[JAVA] WINDOW BUILDER  (0) 2019.11.18
추상클래스  (0) 2019.10.30
[JAVA] 추상클래스/인터페이스  (0) 2019.10.08
JVM 메모리구조/인스턴스 변수 / 멤버 변수  (0) 2019.09.05

 

import java.util.Arrays;

public class Test {
	public static void main(String[] args)
	{
		String[] datas = {"트랜스포머", "스파이더맨", "원더우먼", "킬링"};
		
		Arrays.sort(datas, (o1,o2) -> {
			if(o1.length() > o2.length())
			{
				return -1;
			}
			else
				return 1;
		});
		
		System.out.println(Arrays.toString(datas));
	}
}

'JAVA > 정규식' 카테고리의 다른 글

[정규식] - String 인 날짜 관련  (0) 2023.10.12
[JAVA] 문자열 정규식으로 자르기  (0) 2019.11.12
abstract A {
	int member;
	abstract int method();
	A(){sysout("나는 추상클래스의 생성자")};
	void method1 (int a)
	{
		sysout(a);
	}
}

class B extends A {
	@override              //<-----------------------
	int method()
	{
		return member;
	}
	
	//B(){super();}

}

public static void main(String[] args)
{
	A a = new B();
	a.method1(100);
	System.out.println(a.method());
}



abstract 클래스인 A는 미완성 클래스로 객체 생성 x
따라서 사용을 위해서는 상속을 통해서 인데
class B에서 추상클래서 A를 상속하고 미완성된 클래스를 재정의 하여 사용하는 것으로
사용

 

interface MyInter {
	double PI = 3.14; //멤버변수가 아닌 상수  
			  //모든 메서드들이 abstract 일때 인터페이스로 정의 함
	abstract void method1();//추상메서드 = 정의 부분이 없는 메서드
	int method2(); //abstract 가 생략되어 있음
	void method3(int a);
}

abstract A {
	int member;
	abstract int method();
	A(){sysout("나는 추상클래스의 생성자")};
	void method1 (int a)
	{
		sysout(a);
	}
}

class B extends A {
	@override              //<-----------------------
	int method()
	{
		return member;
	}
	
	//B(){super();}

}

class C implements MyInter {
	//MyInter에 있는 추상 메서드 3개를 재정의 해주어야한다
	//구현을 다 안해주면 오류가남
	@Override
	public void method1()
	{
		System.out.println("인터페이스 메서드1 재정의");
	}
	
	@Override
	public int method2() {
		return 0;
	}
		
	@Override
	public int method2() {
		
	}
}

public static void main(String[] args)
{
	A a = new B();
	a.method1(100);
	System.out.println(a.method());

	// (X) MyInter inter = new MyInter();
	// 인터페이스를 구현하여 사용 extends -> implements
	MyInter inter = new C();
}

'JAVA' 카테고리의 다른 글

[JAVA] 읽으면서 정리하기  (0) 2019.11.10
추상클래스  (0) 2019.10.30
JVM 메모리구조/인스턴스 변수 / 멤버 변수  (0) 2019.09.05
인스턴스 생성/인스턴스 변수/클래스 변수  (0) 2019.09.04
클래스와 객체  (0) 2019.09.03

메소드 영역

- 클래스 사용시 JVM이 해당 클래스 파일을 읽어서 (~.class)

클래스 데이타를 Method Area에 저장한다.

이 때, 해당 클래스의 클래스 변수도 메소드 영역에 생성된다

 

힙 영역

- 인스턴스 생성 공간

EX)인스턴스 변수

 

호출 스택

 

메서드 호출시 -> 호출 스택에 메서드를 저장하기 위한 메모리 할당 -> 해당 메모리는 해당 메서드가 작업을 수행하는

동안에 지역 변수 매개변수들이 저장되는데 사용된다.

메서드가 종료되면 메모리를 반환한다.

 

먼저 실행된 메서드가 가장 늦게 반환된다.

즉, main메소드가 가장 먼저 프로그램 실행시 call stack영역영 가장 아래에 쌓인다.

그다음으로 호출되는 메서드가 차례로 쌓이고 가장 나중에 실행된 메서드가 종료시 부터 메모리가 반환된다.

 

기본형 매개 변수

x = 100;

참조형 매개변수

int x;

 

1. 클래스 메서드 (static 메서드)

클래스이름.해당메서드();

2 .인스턴스 메서드

클래스 변수 객체 = 인스턴스 메서드();

객체.해당메서드();

 

인스턴스 변수는 항상 클래스 멤버를 참조할 수 있다.

하지만 클래스 변수는 클래스 생성시에 생성되는데에 반해

인스턴스변수는 인스턴스 변수를 객체에 담아야 비로소 생성이된다.

따라서

클래스 변수는 인스턴스 변수를 참조하기위해서는 인스턴스 변수가 객체에 담긴후여야한다.

 

'JAVA' 카테고리의 다른 글

추상클래스  (0) 2019.10.30
[JAVA] 추상클래스/인터페이스  (0) 2019.10.08
인스턴스 생성/인스턴스 변수/클래스 변수  (0) 2019.09.04
클래스와 객체  (0) 2019.09.03
1) 변수 , 자료형  (0) 2019.08.26
package practice;

class CardTest {
	public static void main(String[] args)
	{
		Card.width = 10;
		Card.height = 20;
		
		Card card = new Card();
		card.kind = "Spade";
		card.number = 7;
		
	}
}
class Card{
	String kind;
	int number;
	static int width = 100;
	static int height = 250;
}

class Card{

 

}

 

클래스 변수와 인스턴스 변수 구분

 

클래스 생성 시 static 변수가 생성되어서 클래스 변수라고함

static 변수 생성 = static 변수를 클래스 변수라고 함

static int  width = 100; 에 접근하는 법

static int height = 250;

 

main에서 Card 클래스의 객체 card 를 생성하고 = 인스턴스생성 구문인 new Card();를 적으면

인스턴스 변수인 int number; 와 String kind; 가 생성된다.

 

 

인스턴스 생성될 때 생성되는 변수 = 인스턴스 변수

클래스가 생성될 때 생성되는 변수 = 클래스 변수

 

CardTest{

      public static void main(String[] args)

      {

          /방법 1

          클래스이름.width = 10;

          클래스이름.height = 200;

          

          /방법 2

          Card card = new Card(); //인스턴스 생성

          card.width = 10;

          card.width = 200;

          

      }

}

 

 

 

 

'JAVA' 카테고리의 다른 글

추상클래스  (0) 2019.10.30
[JAVA] 추상클래스/인터페이스  (0) 2019.10.08
JVM 메모리구조/인스턴스 변수 / 멤버 변수  (0) 2019.09.05
클래스와 객체  (0) 2019.09.03
1) 변수 , 자료형  (0) 2019.08.26

클래스

- 클래스에 선언된 변수 = 멤버 변수라고 함 (속성)

- 클래스에 선언된 함수 = 메서드라고 함 (기능)

 

메인 메서드에서

- 객체(인스턴스) 생성방법

클래스 타입(클래스 이름임)    참조변수(클래스 객체)  =  new(키워드)   TV() (인스턴스 생성자 메서드)  ;

 

public class TV

{

     boolean power;  // 멤버 변수 (속성)

     int channel;

   

     void channelUp(){++channel};

     void power(); //  메서드(함수)

}

 

public static void main(String[] args)

{

     TV tv = new TV(); // 1. TV는 클래스 타입 (사용자 정의 타입)

                            //  2. tv는 참조 변수 = 객체

                            //  3. new TV(); 인스턴스 생성

     tv.channelUp();    //  tv.channel = 0; 를 해주지 않아도 자동으로 객체 생성시 0으로 초기화됨

                            //  따라서 tv.channelUp();을 실행하면 +1되어 1이 출력 될것임.

     System.out.println("tv의 채널은" + tv.channel + "입니다");

 

 

 

}

 

객체 생성시 초기화되는 값들

int 형 멤버 변수 0

String형 (참조 변수) null

boolean false

 

 

 

'JAVA' 카테고리의 다른 글

추상클래스  (0) 2019.10.30
[JAVA] 추상클래스/인터페이스  (0) 2019.10.08
JVM 메모리구조/인스턴스 변수 / 멤버 변수  (0) 2019.09.05
인스턴스 생성/인스턴스 변수/클래스 변수  (0) 2019.09.04
1) 변수 , 자료형  (0) 2019.08.26
변수

1) 변수 = 값을 저장할 수 있는 메모리상의 공간

 

2) 변수 이름 정하는법

    I) 예약어 제외

   II) 아무이름이나 가능하지만 의미 있는 이름을 쓰는것이 가독성이 좋다.

 

3) 변수 선언

   규칙 :

변수 타입 변수이름;

int cake;

 

4) 사용

변수에 값을 넣어줌

int cake = 10;

 

자료형(타입)

(8bit) = 1byte

정수형

- byte(8), int(32), short(16), long(64)

 

실수형

-float(32), double(64)

 

문자형 

-char(16)

 

논리형

-boolean(8)

 

 

 

 

   

 

 

'JAVA' 카테고리의 다른 글

추상클래스  (0) 2019.10.30
[JAVA] 추상클래스/인터페이스  (0) 2019.10.08
JVM 메모리구조/인스턴스 변수 / 멤버 변수  (0) 2019.09.05
인스턴스 생성/인스턴스 변수/클래스 변수  (0) 2019.09.04
클래스와 객체  (0) 2019.09.03