반응형
// 셀렉트 박스 옵션 사이에 있는 텍스트 값을 가져온다.
options[target.seletedIndex].text

// 셀렉트 박스 value 의 값을 가져온다.
options[target.selectedIndex].value

 

예제

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<select name="selectBox" id="selectBox">
		<option value="가" selected>A</option>
		<option value="나">B</option>
		<option value="다">C</option>
	</select>

</body>

<script type="text/javascript">
	var target = document.getElementById("selectBox");
	alert('선택된 옵션 text 값=' + target.option[target.selectedIndex].text); // 옵션 text 값
	alert('선택된 옵션 vlaue 값=' + target.options[target.selectedIndex].value); // 옵션 value 값
</script>
</html>

예제 결과화면

반응형
반응형
// DataTable이 다 그려진 후 작업을 해야할 때
	table('draw.dt', () => {
		//실행할 코드
	});

 

반응형
반응형

1. show, hide

// show, hide
	jQuery('#toggle').click(function(){
		if($("#id").css("display")=="none"){
			jQuery('#id').show();
		}
	});

 

2. display = "block" or "none"

// display = "block" or "none"
	jQuery('#toggle').click(function(){
		if($("#id").css("display")=="none"){
			jQuery('#id').css("display","none");
		}
	});

 

 

반응형
반응형

StringTokenizer 클래스

- BufferedReader 클래스의 메서드로 입력을 받으면 라인 단위로 읽게 된다. 여기서 스페이스나 콤마 등으로 문자열을 분리할 경우가 많다. 특정 문자를 기준으로 문자열을 나누고 싶을 때, StringTokenizer를 사용한다.

 

즉, 하나의 문자열을 여러 개의 토큰으로 분리하는 클래스라고 보면 된다.

 

 

StringTokenizer 라이브러리 import

import java.util.StringTokenizer;

 

 

StringTokenizer 생성자

StringTokenizer를 생성하는 방식에는 3가지가 있다.

// 띄어쓰기 기준으로 문자열을 나눔.
StringTokenizer st = new StringTokenizer(문자열);

// 구분자를 기준으로 문자열을 나눔.
StringTokenizer st = new StringTokenizer(문자열, 구분자);

// 구분자를 기분으로 문자열을 나눔. 이 때, 구분자도 토큰으로 넣을지 아닐지 구분.(default는 false)
StringTokenizer st = new StringTokenizer(문자열, 구분자, true/false);

 

1. 띄어쓰기 기준으로 문자열 나누기

import java.util.StringTokenizer;

public class Q9 {
	public static void main(String[] args) {
		String str = "Welcome to JunFe's blog";
		StringTokenizer st = new StringTokenizer(str);
		
		int count = st.countTokens();
		for (int i = 0; i < count; i++) {
			System.out.println(st.nextToken());
		}
	}
}

 

결과 화면

 

2. 구분자로 구분하기

import java.util.StringTokenizer;

public class Q9 {
	public static void main(String[] args) {
		String str = "Welcome#to#JunFe's#blog";
		StringTokenizer st = new StringTokenizer(str,"#"); // 구분자는 쌍따옴표로 작성.
		
		int count = st.countTokens();
		for (int i = 0; i < count; i++) {
			System.out.println(st.nextToken());
		}
	}
}

결과 화면

결과는 1번과 같다.

 

 

3. 구분자도 토큰화 하기

import java.util.StringTokenizer;

public class Q9 {
	public static void main(String[] args) {
		String str = "Welcome#to#JunFe's#blog";
		StringTokenizer st = new StringTokenizer(str,"#",true); // 구분자는 쌍따옴표로 작성.
		
		int count = st.countTokens();
		for (int i = 0; i < count; i++) {
			System.out.println(st.nextToken());
		}
	}
}

 

결과 화면

구분자 또한 토큰화되어 출력된 것을 확인할 수 있다.

 

 

그렇다면 StringTokenizer와 Split의 차이는 무엇일까

둘 다 문자열을 파싱하는데 사용한다는 공통점이 있다.

 

차이점

- StringTokenizer는 java.util에 포함된 클래스, split은 String클래스에 속해있는 메소드

- StringTokenizer는 문자나 문자열로 문자열을 구분, split은 정규표현식으로 구분

- StringTokenizer는 빈 문자열을 토큰으로 인식하지 않음, split은 빈 문자열을 토큰으로 인식

- StringTokenizer는 결과값이 문자열이라 전체 토큰을 보고싶으면 반복문을 이용해서 하나씩 뽑아야함, split은 결과값이 문자열 배열.

반응형

'Programming > Java' 카테고리의 다른 글

[Java] 거듭 제곱 구하는 방법 Math.pow()  (0) 2022.10.31
[Java] printf  (0) 2021.09.11
Java Beans란?  (0) 2021.08.22
DAO와 DTO(VO)의 차이점  (0) 2021.08.19
반응형

printf는 print, println 과 좀 다르다.

기본 형식은 아래와 같다.

 

System.out.printf(format, args);

 

여기서 format에는 %d, %f, %s, %c가 들어가고, arg에는 %*에 들어갈 인자값이 들어간다.

 

그러면 여기서 어떤 차이가 있는지 하나씩 비교해보자.

 

public class Ex{
	public static void main(String[] args){
    	System.out.printf("정수형:%d\n", 7);
        System.out.printf("정수형:%2d\n", 7);
        System.out.printf("정수형:%02d\n", 7);
        
        System.out.printf("실수형:%f\n", 7.5555);
        System.out.printf("실수형:%.3f\n", 7.4444);
        System.out.printf("실수형:%.2f\n", 7.5555);
        
        System.out.printf("실수형:%9f\n", 7.5555);
        System.out.printf("실수형:%010f\n", 7.5555);
        System.out.printf("실수형:%10.2f\n", 7.5555);
        System.out.printf("실수형:%010.2f\n", 7.5555);
        
        System.out.printf("문자형:%c\n", 'K');
        System.out.printf("문자열형:%s\n", "study hard");
    }
}

 

그에 대한 결과값

 

그럼 하나씩 살펴보자.

 

정수형

정수 10진수는 %d를 사용하여 표현한다.

%d는 알겠는데 %2d, %02d는 무엇일까?

 

먼저 %2d의 의미는 2자리 정수형을 표현하라는 의미이다. 입력한 숫자는 7로 한자리이므로 앞에 빈공간이 하나 생기고 ' 7'이 출력된다.

다음으로 %02d의 의미는 2자리 정수형을 표현하되, 빈자리는 0으로 채우라는 의미이다. 따라서 '07'이 출력된다.

 

실수형

실수형도 정수형과 크게 차이는 없다. 실수형 인자를 입력할 때는 %f를 사용한다.

%f 는 작성해본 결과 소수점 6자리까지 표현된다. 7.555500 이 출력된다.

%.3f 는 소수점 3자리까지 표현되고 소수점 4번째 자리에서 반올림해서 7.444 가 출력된다.

%.2f 는 소수점 3번째 자리에서 반올림하여 소수점 2번째자리까지 표현하여 7.56 이 출력된다.

 

%9f 는 총 9자리수를 표현하겠다는 뜻으로, %f가 기본 소수점 6자리를 표현하기 때문에 수수점 6자릴 제외한 ' 7.'이 앞에 세자리로 표현된다. 이 때, 소수점인 '.'도 한자리로 친다. 따라서 ' 7.555500' 으로 출력된다.

%010f 는 총 10자리수를 표현하고, 기본 소수점 6자리를 제외한 나머지 4자리를 빈곳은 0으로 채워 '007.'으로 표시하여 '007.555500'으로 출력된다.

%10.2f 는 총 10자리수를 표현하고, 소수점 3번째자리에서 반올림해 소수점 2자리까지만 표현한다. 따라서 '      7.56' 이 출력된다.

%010.2f 는 총 10자리수를 표현하고, 위와 같이 소수점은 2자리까지만 표현하는데, 앞 빈공간을 0으로 채워 '0000007.56'이 출력된다.

 

문자형

%c는 인자값은 ''(작은따옴표)를 이용해서 표현하고, 한 문자를 표현할 때 사용한다. 결과값은 'K'

 

문자열형

%s는 인자값은 ""(큰따옴표)를 이용해서 표현하고, 문자열을 표현할 때 사용한다. 결과값은 "study hard"

 

 

스스로에게 공부 열심히 화이팅하자는 의미로 문자열은 적었다. 

 

반응형

'Programming > Java' 카테고리의 다른 글

[Java] 거듭 제곱 구하는 방법 Math.pow()  (0) 2022.10.31
[Java] StringTokenizer 클래스  (0) 2021.09.25
Java Beans란?  (0) 2021.08.22
DAO와 DTO(VO)의 차이점  (0) 2021.08.19
반응형

스프링을 책보며 복습 중이었는데 jdbc를 연결하는 부분에서 특정한 에러메세지는 뜨지 않았는데 계속 연결에 실패했다.

아무리 봐도 db 정보는 제대로 잘 입력했다. 

 

자세히 보니 failure : 1 이 적혀있고, '로케일을 인식할 수 없습니다.' 라는 문구가 적혀있었다.

 

찾아보니 맥북 업데이트 시에 잘 일어나는 에러 메세지인 것 같더라.

이유는 아직 잘 모른다.....

 

해결법!

 

시스템 환경설정 에서 언어 및 지역 -> 지역 을 미국으로 바꾸어주었다가 다시 대한민국으로 설정해주면 된다.

 

그 후에 다시 jdbc test를 수행해보면 잘 연결된 것을 볼 수 있다.

 

반응형
반응형

'의존성 주입' 이라는 개념.

 

'의존성'이란 하나의 객체가 다른 객체 없이 제대로 된 역할을 할 수 없다는 것을 의미.

 

'주입'은 말 그대로 외부에서 밀어 넣는 것을 의미.

 

즉, 두 단어를 결합해서 본다면 '어떤 객체가 필요한 객체를 외부에서 밀어 넣는다'는 의미.

 

그렇다면 왜?? 외부에서 객체를 주입하는 방식을 사용하는가?

 

음식점을 예로 들어보면 쉽게 이해할 수 있다.

 

1. 식재료를 직접 구매하여 음식점을 운영한다.

- 식재료 구매도 신경쓰고, 음식점 운영도 신경 써야 한다.

 

2. 외부에서 식재료를 공급해주고 그걸 이용해서 음식점을 운영한다.

- 식재료 수급이 편이하고, 장사에만 집중할 수 있다.

 

2번 처럼 외부에서 주입 받는경우 개발에만 집중할 수 있게 되는 것이다.

 

스프링은 이러한 구조를 만들기 적합한 구조로 설계되어 있다. 스프링에서는 'ApplicationContext'라는 존재가 필요한 객체들을 생성하고, 필요한 객체들을 주입하는 역할을 해주는 구조이다. 따라서 개발자들은 기존의 프로그래밍과 달리 객체와 객체를 분리해서 생성하고, 이러한 객체들을 엮는 작업을 하는 형태의 개발을 한다. ApplicationContext가 관리하는 객체들을 빈(Bean) 이라고 부르고, 빈과 빈 사이의 의존관계를 처리하는 방식으로 XML 설정, 오노테이션 설정, Java 설정 방식을 이용할 수 있음.

반응형
반응형

POJO(Plain Old Java Object)

- 간단히 POJO는 말 그대로 해석을 하면 오래된 방식의 간단한 자바 오브젝트라는 말로서 Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발해서 사용되게 된 용어이다. 2000년 9월에 마틴 파울러, 레베카 파슨, 조쉬 맥킨지 등이 사용하기 시작한 용어로서 마틴 파울러는 다음과 같이 그 기원을 밝히고 있다. [1]

우리는 사람들이 자기네 시스템에 보통의 객체를 사용하는 것을 왜 그렇게 반대하는지 궁금하였는데, 간단한 객체는 폼 나는 명칭이 없기 때문에 그랬던 것이라고 결론지었다. 그래서 적당한 이름을 하나 만들어 붙였더니, 아 글쎄, 다들 좋아하더라고.
  — 마틴 파울러

POJO라는 용어는 이후에 주로 특정 자바 모델이나 기능, 프레임워크 등을 따르지 않은 자바 오브젝트를 지칭하는 말로 사용되었다. 스프링 프레임워크는 POJO 방식의 프레임워크이다.

 

 

스프링은 내부에서 객체 간의 관계를 구성.

이 관계를 구성할 때 별도의 API 등을 사용하지 않는 POJO의 구성만으로 가능하도록 제작.

-> 일반적인 Java 코드를 이용해서 객체를 구성하는 방식을 그대로 스프링에서 사용할 수 있다는 이야기

 

의미?

- 코드를 개발할 때 개발자가 특정한 라이브러리나 컨테이너 기술에 종속적이지 않다.

- 개발자는 가장 일번적인 형태로 코드를 작서앟고 실행할 수 있기 때문에 생산성에서도 유리

- 코드에 대한 테스트 작업 역시 좀 더 유연하게 할 수 있음.

 

반응형

+ Recent posts