연산자

연산자와 피연산자

- 연산자(Operator)란 연산을 수행하는 기호를 의미한다.

- 피연산자(Operator)란 연산에 포함되는 변수나 상수를 의미한다.

- A + B에서 A와 B는 피연산자에 해당하며 +는 연산자에 해당한다.


C언어에서 사용하는 연산자

대입연산자 : =

- '=' 등호를 이용하여 우변항을 좌변항에 넣을 수 있다.

- 자료형에 부합하는 값을 좌변항에 있는 변수에 넣는다.


산술연산자 : +, -, *, /, %

- 기본적인 사칙연산 사용가능하다

- 나머지를 구하기 위해 모듈러연산(%)을 사용한다.

실습 내용


실습결과



관계연산자 : ==, !=, >, <, >=, <=

논리연산자 : !, &&, ||

증감연산자 : ++, --

삼항연산자 : ?:

비트연산자 : !, ~, &, ^, >>, <<


이스케이프 시퀀스(Escape Sequence)

- \n : 줄 바꾸기

- \t : 수평 탭 넣기

- WW : 백슬래시 넣기

- \" : 큰 따옴표 넣기

- \b : 백 스페이스 넣기

실습내용


실습결과



증감연산자

- ++(변수) : i의 값을 1 증가시킨 후에 증가된 값을 반환한다.

- (변수)++ : i의 값을 1 증가시킨 후에 증가되기 전의 값을 반환한다.

- --(변수) : i의 값을 1 감소시킨 후에 감소된 값을 반환한다.

- (변수)-- : i의 값을 1 감소시킨 후에 감소되기 전의 값을 반환한다.

실습내용


실습결과


기본 입출력

scnaf()

- scanf()를 이용할 때 &를 이용하는 이유는?

- &는 특정한 변수의 주소를 의미한다.

- 실제로 컴퓨터는 특정한 메모리 주소에 접근하여 데이터를 수정하므로

  &를 이용하는 것이다.

- 그렇다면 메모리 주소에 얼마만큼의 크기로 데이터를 쓸 지 결정해야한다.


형식 지정자

- int(4Byte) : 정수형 데이터를 입력 및 출력할때 %d 사용


- long long(8Byte) : 큰 정수형 데이터를 입력 및 출력할때 %lld 사용


- double(8Byte) : 큰 실수형 데이터를 입력할때 %lf, 출력할때 %f 사용

+ 입력과 출력이 다른이유

입력을 받을 땐 특정 주소에 특정한 크기만큼 입력하겠다고 정확하게 명시

출력할땐 주소가 아닌 그값자체를 출력하기 때문에

정확한 크기를 정해주지 않아도 되기 때문이다.

- float(4Byte) : 실수형 데이터를 입력 및 출력할때 %f 사용


- string(제한 없음) : 문자열데이터를 입력 및 출력할때 %s 사용


- char(1Byte) : 문자데이터를 입력 및 출력할때 %c 사용


- %를 출력하고 싶으면 "%%"로 사용한다.


실습 내용

- scanf 사용위해 #define _CRT_SECURE_NO_WARNINGS 사용(화면상단)

- int,double(소수자리설정),int(한자리씩쪼개기) 테스트


실습결과



정리

- C언어에서 입력 받거나 출력할 때는 형식 지정자를 적절히 따라야한다.

- printf()는 단순히 데이터를 넘기고, 

  scanf()는 입력 받을 주소를 나타내기 위해 &를 사용한다.

척도

척도에 따라 분석방법이 달라진다.


척도의 원칙

- 포괄성 : 척도 안에 모든 경우의 수가 포함되어야 한다는 원칙

ex) 잘못된 예 : 고졸, 전문대졸, 4년대졸, 대학원졸

    잘된 예 : 고졸 이하, 전문대졸, 4년대졸, 대학원졸 이상

    모든 경우의 수가 포함되어야 한다.

- 상호배타성 : 척도 안에 중복되는 경우의 수가 없어야 한다는 원칙

ex) 잘못된 예 : 1백만원 이하, 1백만원 ~ 2백만원 

    잘된 예 : 1백만원 이하, 1백만원 초과 ~2백만원 이상

    겹치는 것이 없어야한다.


포괄성, 상호배타성을 기초로 4가지 척도로 구분된다.


명목척도

- 측정이 이루어지는 항목들이 상호배타적인 특성만 가진척도

ex) 남성, 여성

서열척도

- 명목척도들 중 항목들 간에 서열이나 순위가 존재하는 척도

ex) 무학, 초졸, 중졸, 고졸, 전문대졸, 4년대졸등등


등간척도

- 서열척도들 중 항목들 간의 간격이 일정한 척도

ex) 매우불만족,약간불만족,보통,약간만족,매우만족

비율척도

- 등간척도 중 아무 것도 없는 상태를 '0'으로 정할 수 있는 척도

ex) 20세 이하,21~30세,31~40세,41~50세

0이라는 개념은 아직 태어나지않음을 뜻함

반대로 온도는 0도 아래도 있기에 비율척도가 아님


도수분포표,그래프


도수분포표와 그래프는 모아진 데이터를 일목요연하게 보여주는 방법이다.


도수분포표

- 수집된 자료를 쉽게 이해할 수 있도록 일목요연하게 정리된 표로,

  특정 항목 또는 특정 범위에 속하는 빈도수를 나타낸 표

  ex) 연령대가 28, 30, 31, 33, 35, 41, 42가 있다면

      특정범위는 20 초과 30 이하, 30초과 40이하, 40초과 50이하

      빈도수는 1, 4, 2 합계 7로 표현한다.


그래프

- 막대그래프

+ 비연속형 변수(명목척도 및 서열척도)에 사용되는 그래프로,

  각 항목에 속하는 빈도수를 나타낸 그래프


- 히스토그램

+ 연속형 변수(등간척도 및 서열척도)에 사용되는 그래프로,

  일정 범위에 속하는 빈도수를 나타낸 그래프

- 선그래프

+ 히스토그램의 끝 부분을 선으로 연결한 그래프

'개발 소발 > 기초 통계' 카테고리의 다른 글

기초통계 | 기술통계,추리통계 란?  (0) 2018.12.11

1980년대

- 개인용 컴퓨터 시대

+ 1980년대 이전 : 대형 컴퓨터를 여러 명이 접속해서 이용(UNIX)

+ 1980년대~ : Personal Computer(PC)


- 용어이해

+ CLI(Command Line Interface): 터미널 환경(리눅스,DOS)

+ GUI(Graphical User Interface): GUI 환경


- CLI -> GUI 변경 되었다.

+ 1980년대 초반: CLI

+ 1980년대 중후반 : GUI


1990년대

- 응용프로그램 시대 

+ GUI 환경,개인용 컴퓨터(사용자 증대)

+ 엑셀, 워드 프로세서 등등

+ Window OS 대중화


- 네트워크 기술 발전

+ 월드와이드웹(WWW) 인터넷 대중화


- 오픈 소스 운동 활성화 시작

+ UNIX OS + 응용 프로그램 자체 개발, 소스 오픈

+ LINUX (리눅스) 운영체제, 소스 오픈, 무료


2000년대 이후

- 오픈 소스 활성화

+ LINIX(리눅스) 운영체제

+ Apache(아파치, 웹서버)

+ MySQL (데이터베이스)

+ 안드로이드,딥러닝,데이터사이언스,IoT관련


- 가상 머신, 대용량 병렬 처리등 활성화


정리

- 1950년대 : 운영체제없음(프로그램이 시스템 자원 직접 제어)

- 1960년대 : 배치 처리 시스템

- 1970년대 : 시분할시스템/멀티 태스킹 시스템 -UNIX OS(C언어)

- 1980년대 : GUI,개인용컴퓨터 등장

- 1990년대 : 다양한 응용프로그램, 인터넷 발달, 오픈 소스 운동 활성화

- 2000년대 : 오픈소스 활성화, 가상 머신, 대용량 병렬 처리등


- 운영체제는 응용 프로그램과 시스템 자원을 제어하고, 관리한다.

- 응용 프로그램(Application) 용어 이해

- 배치 처리 시스템, 시분할 시스템, 멀티 태스킹

- CLI,GUI 용어 이해

코드로 보는 버블정렬(BubbleSort)

간단히 말해 배열에서 배열[i]와 배열[i+1]의 값을 확인 후 
배열[i]가  배열[i+1] 보다 크다면 둘의 위치를 바꾼다
둘의 위치를 바꾸기위해 임시저장소(아래코드:int temp) 사용한다.
위에서 말한 행위를 배열의 크기(for문 i) 안에
배열의 크기-1-i(for문 j)만큼 반복하여 위치를 정렬하는것을 버블정렬이라고 한다.

위 로직이 실행되게되면 10자리의 배열에 0~9까지 값이 랜덤으로 생성된다.

생성된 숫자 : 1338675973


위 로직을 일부 해석해보겠다.


빨간색으로 표시된 부분이 비교하는 부분이다.

배열[0]의 값 1과 3을 비교한다.

1338675973


배열[1]의 값 3과 3을 비교한다.

1338675973


배열[2]의 값 3과 8을 비교한다.

1338675973


배열[3]의 값 8과 6을 비교한다.

1338675973

배열[3]의 데이터가 배열[4]의 데이터보다 크다

배열[3] : 8과 배열[4] : 6 위치를 변경 -> 13368(위치변경)75973



배열[4]의 값 8과 7을 비교한다.

1336875973

배열[4]의 데이터가 배열[5]의 데이터보다 크다

배열[4] : 8와 배열[5] : 7 위치를 변경 -> 133678(위치변경)5973


배열[5]의 값 8과 5을 비교한다.

1336785973

배열[5] 데이터가 배열[6]의 데이터보다 크다

배열[5] 데이터 : 8와 배열[6] 데이터 : 5 위치를 변경 -> 1336758(위치변경)973


배열[6]의 값 8과 9를 비교한다.

1336758973


배열[7]의 값 9과 7를 비교한다.

1336758973

배열[7] 데이터가 배열[8]의 데이터보다 크다

배열[7] 데이터 : 9과 배열[8] 데이터 : 7 위치를 변경 -> 133675879(위치변경)3



배열[8]의 값 9과 3를 비교한다.

1336758793

배열[8] 데이터가 배열[9]의 데이터보다 크다

배열[8] 데이터 : 9와 배열[9] 데이터 : 3 위치를 변경 -> 1336758739(위치변경)


이런식으로 반복되면 맨 뒷자리는 가장 큰수가 남게된다.


맨 뒷자리 값을 가장 큰수이므로 비교 하지않고 하나씩 작은 숫자로 반복하게된다.

또 check값으로 데이터의 변경이 없을 경우 즉 정렬 완료시 반복을 중지한다.



기술통계

- 수집한 자료를 분석하여 대상들의 속성을 파악하는 통계방법

- 중심경향값 : 전체 자료를 대표할 수 있는 수치들

+ 평균 : 전체 자료가 가지는 수치들의 총합을 전체 자료의 수로 나눈 수치 

+ 중앙값 : 최대값과 최소값의 정가운데 수치

+ 최빈값 : 가장 많은 빈도를 보이는 수치

- 분산도 : 전체 자료가 얼마나 퍼져 있는 지를 알 수 있는 수치들

+ 분산 : 각 자료가 평균으로 부터 떨어진 거리(편차)들을 제곱한 수치들의

총합을 전체 자료의 수로 나눈 수치

+ 표준편차 : 분산의 제곱을 취한 수치


- 상관계수 : 두 변수 간의 관계의 크기


- 회귀계수 : 독립변수(원인)가 종속변수(결과)에 미치는 영향의 크기

추리통계(추론통계)

- 모집단을 대표하는 표본을 추출하고 표본의 기술통계를 이용하여 모집단의 속성들을

  유추하는 통계방법

- 신뢰구간

+ 추리통계에서 예측한 모집단의 특성이 위치할 가능성이 높은 구간

+ 표본에서 구해지는 기술통계값들을 이용하여 계산되며,

  95%,99%,99.9% 신뢰수준에서 따라 달라진다.

  (숫자가 높아질수록 정확성이 높아진다. 정확성을 높이기위해 신뢰구간을 높인다.)


- 모집단 : 연구 또는 분석이 이루어지는 전체 대상

+ 전수조사하는게 제일 좋으나 불가능에 가깝다.


- 표본 : 모집단에서 추출한 일부로, 모집단의 속성들을 유추하는데 사용

+ 확률표본추출방법 :  무작위로 표본을 추출하는 방법으로 모집단을 

      대표할 가능성이 높은 방법

+비확률표본추출방법 : 조사자의 편의나 판단에 의해서 표본을 추출하는

      방법으로 모집단을 대표하지않을 가능성이 존재하는방법


표본을 얼마나 추출해야 모집단을 대표할수있을까

- 중심극한정리 

+ 표본이 30 이상으로 충분히 클 때

1) 모집단의 분포와 상관없이 표본은 정규분포

2) 표본의 평균 = 모집단의 평균

3) 표본의 분산 = (모집단의 분산)/(표본의수)


- 자유도

+ 평균을 유지하면서 자유롭게 어떠한 값도 가질 수 있는 사례의 수 (N-1)

  ex)모집단의 평균이 3일때 네개의 표본을 추출했을경우 3개는 

     자유롭게뽑고 나머지하나는 평균에 맞춰줘야한다.

'개발 소발 > 기초 통계' 카테고리의 다른 글

기초통계 | 척도,도수분포표,그래프 란?  (0) 2018.12.12

1950년대

- ENIAC : 번째 컴퓨터

+ 운영체제가 없었음

+ 1개의 응응프로그램을 실행시키도 바쁘다.

+ 응용프로그램이 직접 시스템 자원을 제어하며 실행.


1960년대 초반

- 프로그램 종류도 많아지고, 사용자도 슬슬 많아지기 시작했다.

+ 프로그램이 많아지면 단일 프로그램을 실행시키는 상황은 여러 프로그램을 실행시키기엔 

시간이 너무 오래 걸렸다.


- 배치 처리 시스템(batch processing system) 출현

+ 여러 응용 프로그램을 등록시켜놓으면, 순차적으로 실행하는 시스템

+ 배치 처리 시스템을 기반으로 운영체제가 출현


1960년대 후반

- 새로운 개념이 제안됨

+ 시분할 시스템(Time Sharing System)

+ 멀티 태스팅(Multi Tasking)


멀티 프로그래밍(다중 프로그래밍)

+ 최대한 CPU 많이 활용하도록 하는 시스템(시간 대비 CPU활용도를 높인다.)

프로세서가 항상 수행할 작업을 가지도록 하여 프로세스 이용률을 증진 시키는 방법이다.


- 시분할 시스템, 멀티태스킹이 아이디어로 나왔지 운영체제로 구현되지는 않았다.


- 시분할 시스템, 멀티태스킹 공통점

+ 응용 프로그램이 CPU 사용하는 시간을 잘개 쪼개서, 여러 개의 응용 프로그램을 동시에 실행하는 기법


- 시분할 시스템 

+ 다중 프로그래밍을 논리적으로 확장한 개념이다.

+ 다중 사용자를 지원하고, 컴퓨터 응답 시간을 최소화하는 시스템

ex) 리눅스에 여러 사용자가 로그인하여 사용하면 각자 컴퓨터를 사용하고있는것처럼 지원해준다.

+ 다중 사용자가 사용하려면 응답시간을 줄여야한다(최소화).

+ 배치 프로그램보다 컴퓨터 응답시간을 줄어드는 장점이 있다.


- 멀티태스킹

+ 가능한 CPU 많이 활용하도록 하는 기능(시간대비 CPU 사용율을 높이는것)

+ 단일 CPU에서, 여러 응용프로그램의 병렬 실행을 가능하게 하는 시스템

(시간을 잘게 쪼개서 응용프로그램을 바꿔가면서 실행, 여러응용프로그램이 동시 실행되는것처럼 보임)


- 시분할 시스템,멀티태스킹은 유사한 기술이다.


- 시분할 시스템,멀티태스킹은 스케줄러를 사용한다.


- 배치 처리 시스템의 단점

+ 컴퓨터 응답 시간이 오래 걸릴 있다.(앞단에 실행시간이 많이 필요로 하는 응용 프로그램이 실행될 경우)

+ 실행 시간도 오래걸릴 있다.(CPU 필요 없음에도 응용프로그램이 CPU 점유할 있다.


- 1960년대 후반부 정리

+ 시분할 시스템, 멀티태스킹 기술이 아이디어로 제공 (구현 X)

+ 기술 : CPU 시간을 쪼개서 사용한다.

+ 결과 : 다중 사용자 지원, 응용 프로그램 동시 실행


1970년대

- 제대로된 운영체제가 나왔다.(UNIX)

+ 미국 AT&T 사의 연구소

+ 켐톰슨, 데니스 리치 개발

+ 데니스 리치는 C언어를 개발


- 운영체제 개발에 C언어가 필요했던 이유

+ 1970년대 이전 : Assembly 언어로 소프트웨어 개발

+ CPU(명령어), Memory(주소) 물리적 주소를 직접 지정해서 활용

+ 각각 컴퓨터마다 사양이 다르기에 컴퓨터마다 다시 개발해줘야 하는 단점이 있다.

+ 프로그래밍 복잡도가 높음(활용도는 좋다)


+ 1970년대 C언어가 개발된

+ 컴파일러 : 다시 작성할 필요가 없음

+ 여러 컴퓨터에 같은 C언어를 사용 가능하다.

+ Assembly 언어에 비해 복잡도가 낮다.


- 이러한 이유로 C언어를 기반으로 운영체제를 개발했다.


- UNIX 특징

+ 현대 운영체제의 기본 기술을 모두 포함한 최초의 운영체제

+ 멀티 태스킹, 시분할 시스템, 멀티프로그래밍

+다중 사용자 지원 



운영체제 역할

Operating System

OS

1. 시스템 자원 관리자

2. 사용과 컴퓨터간의 커뮤니케이션 지원

3. 컴퓨터 하드웨어와 프로그램을 제어


1. 시스템 자원(System Resource)관리자

- 컴퓨터 하드웨어 관리 소프트웨어

모니터,네트워크,키보드,마우스,HDD,SSD,etc..

+컴퓨터 하드웨어는 스스로 있는 것이 없다.

ex) CPU,Memory 분배,할당 역할을하지만

스스로 하진 않는다.

+모든 행동은 하드웨어스스로하지 않고 운영체제가 한다.


대표적인 운영체제

- Window OS, Max OS,UNIX

- UNIX OS(현대 기초적인 OS )

+ UNIX 계열 OS 

*UNIX 사용법이나,OS 구조가 유사

+ LINUX (리눅스) OS

*프로그래머,전공자


2. 사용자과 컴퓨터간의 커뮤니케이션 지원

- 사용자와 하드웨어간의 커뮤니케이션(중재)


3. 컴퓨터 하드웨어와 프로그램을 제어

- 응용프로그램(한글, 엑셀, 카카오톡) 하드웨어 관리



운영체제와 응용 프로그램


응용 프로그램이란?

- 프로그램 = 소프트웨어

- 소프트웨어 두가지로 구분

운영체제

응용프로그램(Application)

(엑셀,파워포인트,개인개발프로그램)

특징 : 운영체제위에서 동작


운영체제와 응용 프로그램 간의 관계

- 운영체제는 나머지 응용 프로그램을 관리

응용 프로그램을 실행시킨다.

응용 프로그램간의 권한을 관리한다.

+ 관리자 권한으로 실행

응용 프로그램을 사용하는 사용자도 관리

+ 로그인

응용 프로그램은 누구나 만들 있다.

+ 응용 프로그램엔 문제가 있을 있고

문제를 제어하는건 운영체제가 한다.

(비정상 응용 프로그램 관리)

모든 파일 삭제 막기

+ 권한/사용자 관리

- 운영체제(컴퓨터 전반) 방해하는 행동 제어

- 운영체제 역할이란?

응용 프로그램을 관리한다.

시스템 자원을 관리한다

사용자와 컴퓨터 간의 커뮤니케이션을 지원


운영체제의 목표

- 사용자가 사용하는 응용 프로그램이 효율적으로, 적절하게 동작하도록 지원

- 운영체제는 응용 프로그램이 요청하는 시스템 리소스를 효율적으로 분배하고

지원하는 소프트웨어


운영체제 설치장소는 어디일까?

- 저장매체(SSD,HDD) 저장(설치) 된다.


운영체제는 메모리에 올라가게된다.

- 운영체제도 소프트웨어이다.

- 폰노이만 구조(모든 프로그램은 메모리에 올라가고 CPU 던져지며 실행된다.)



jQuery checkbox 체크시 상위로 올리기


개발하다 checkbox에 체크하면 그 checkbox를 위로 올려달라는 요구가 

들어올때 요긴하게 사용하자.


ID Action
1
2
3
4
5


jQuery CODE

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>

<script>

 $('table').on('change', '[type=checkbox]', function () {

     var $this = $(this);

     var row = $this.closest('tr');

     if ( $this.prop('checked') ){ 

        row.insertBefore( row.parent().find('tr:first-child') )

            .find('label').html('체크완료'); 

     }

     else { 

        row.insertAfter( row.parent().find('tr:last-child') )

            .find('label').html('미체크');  

     }

});

</script>




HTML CODE

<table>

    <thead>

        <tr>

            <th>ID</th>

            <th>Action</th>

        </tr>

    </thead>

    <tbody>

        <tr class="c1">

            <td>1</td>

            <td><input type="checkbox" id="c_1"><label for="c_1">미체크</label></td>

        </tr>

        <tr class="c2">

            <td>2</td>

            <td><input type="checkbox" id="c_2"><label for="c_2">미체크</label></td>

        </tr>

        <tr class="c3">

            <td>3</td>

            <td><input type="checkbox" id="c_3"><label for="c_3">미체크</label></td>

        </tr>

        <tr class="c4">

            <td>4</td>

            <td><input type="checkbox" id="c_4"><label for="c_4">미체크</label></td>

        </tr>

        <tr class="c5">

            <td>5</td>

            <td><input type="checkbox" id="c_5"><label for="c_5">미체크</label></td>

        </tr>

    </tbody>

</table>


자바 개발할때 유용한 라이브러리(library)!


StringUtils - 문자열에 작업하는 관련기능들을 모아놓은 Library


사용방법 

1.직접 다운 : 다운로드페이지(click)

2.Maven : MavenRepository페이지(click)

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->

<dependency>

    <groupId>org.apache.commons</groupId>

    <artifactId>commons-lang3</artifactId>

    <version>3.8</version>

</dependency>


직접 다운로드할시 lib에 추가하여 사용하고 Maven사용시엔 pom.xml에 추가한다.


StringUtils.split("문자열")

문자열의 공백을 기준으로 나눈다(배열).

String[] split = StringUtils.split("123 456 789");

for (String string : split) {

System.out.print(string+"!");

}

//출력결과 : 123!456!789!


StringUtils.split("문자열","구분자")

문자열의 구분자를 기준으로 나눈다(배열).

구분자가 null일시 공백을 기준으로 나눈다.

String[] split2 = StringUtils.split("123@!@456@!@789","@!@");

for (String string : split) {

System.out.print(string+"!");

}

//출력결과 : 123!456!789!


StringUtils.splitByCharacterType("문자열")

문자열을 동일한 문자열(대/소문자,한글,숫자등) 기준으로 나눈다(배열).

String[] splitByCharacterType = 

StringUtils.splitByCharacterType("show ME the Money 10000");

for (String string : splitByCharacterType) {

System.out.print(string+"!");

}

//출력결과 : show! !ME! !the! !M!oney! !10000!


StringUtils.splitByCharacterType("문자열")

문자열을 동일한 문자열(대/소문자,한글,숫자등) 기준으로 나눈다(배열).

단 카멜케이스 즉 대문자로 시작하는 문자열은 한단어로 생각한다.

String[] splitByCharacterTypeCamelCase = 

StringUtils.splitByCharacterTypeCamelCase("show ME the Money 10000");

for (String string : splitByCharacterTypeCamelCase) {

System.out.print(string+"!");

}

//출력결과 : show! !ME! !the! !Money! !10000!


StringUtils.splitByWholeSeparator("문자열","구분자")

문자열의 구분자를 기준으로 나눈다(배열).

구분자가 null일시 공백을 기준으로 나눈다.

String[] splitByWholeSeparator =

StringUtils.splitByWholeSeparator("show ME the Money 10000", null);

for (String string : splitByWholeSeparator) {

System.out.print(string+"!");

}

//출력결과 : show!ME!the!Money!10000!


StringUtils.splitByWholeSeparatorPreserveAllTokens("문자열","구분자")

문자열의 구분자를 기준으로 나눈다(배열).

구분자가 null일시 공백을 기준으로 나눈다.

공백을 기준으로 나눌시 공백이 여러개일경우 하나를 제외하곤 문자로 포함된다.

String[] splitByWholeSeparatorPreserveAllTokens =

StringUtils.splitByWholeSeparatorPreserveAllTokens("123  456 789", null);

for (String string : splitByWholeSeparatorPreserveAllTokens) {

System.out.print(string+"!");

}

//출력결과 : 123!!456!789!


StringUtils.splitPreserveAllTokens("문자열")

문자열을 공백을 기준으로 나눈다(배열).

공백이 여러개일경우 하나를 제외하곤 문자로 포함된다.

String[] splitPreserveAllTokens =

StringUtils.splitPreserveAllTokens("123  456 789");

for (String string : splitPreserveAllTokens) {

System.out.print(string+"!");

}

//출력결과 : 123!!456!789!


StringUtils.splitPreserveAllTokens("문자열","구분자")

문자열의 구분자를 기준으로 나눈다(배열).

문자열에 앞뒤로 구분자가 있을경우 빈값으로 배열에 포함한다.

String[] splitPreserveAllTokens2 =

StringUtils.splitPreserveAllTokens("@123@ 456@789 ","@");

for (String string : splitPreserveAllTokens2) {

System.out.print(string+"!");

}

//출력결과 : !123! 456!789 !


StringUtils.strip("문자열","문자")

문자열의 앞뒤 문자를 제거한다.

문자가 없을경우 앞뒤 공백을 제거한다.

String strip = StringUtils.strip("@!show@!me@!","@!");

System.out.println(strip);

//출력결과 : show me

StringUtils.stripAccents("문자열")

문자열에 표시된 억양을 제거한다.

String stripAccents = StringUtils.stripAccents("à");

System.out.println(stripAccents);

//출력결과 : a


StringUtils.stripAll(문자배열,"문자")

문자배열안의 모든 문자열 앞뒤 문자를 제거한다.

문자가 없을경우 앞뒤 공백을 제거한다.

String[] stripAll = 

StringUtils.stripAll(new String[] {"@1@2@3@", "@4@5@6@"},"@");

for (String string : stripAll) {

System.out.print(string+"!");

}

//출력결과 : 1@2@3!4@5@6!



StringUtils.stripEnd("문자열","문자")

문자열의 뒷부분에 문자를 제거한다.

문자가 없을경우 뒷부분 공백을 제거한다.

String stripEnd = StringUtils.stripEnd("@1@2@3@","@");

System.out.println(stripEnd);

//출력결과 : @1@2@3

StringUtils.stripStart("문자열","문자")

문자열의 앞부분에 문자를 제거한다.

문자가 없을경우 앞부분 공백을 제거한다.

String stripStart = StringUtils.stripStart("@1@2@3@","@");

System.out.println(stripStart);

//출력결과 : 1@2@3@


StringUtils.stripToEmpty("문자열")

문자열의 앞뒤 공백을 제거한다.

문자열이 null,"","   "이면  ""로 반환환다.

String stripToEmpty = StringUtils.stripToEmpty("   1 2 3    ");

System.out.println(stripToEmpty);

//출력결과 : 1 2 3

StringUtils.stripToNull("문자열")

문자열의 앞뒤 공백을 제거한다.

문자열이 null,"","   "이면  null로 반환환다.

String stripToNull = StringUtils.stripToNull("   1 2 3    ");

System.out.println(stripToNull);

StringUtils.substring("문자열",시작위치)

문자열의 시작위치 순서부터 반환한다.

String substring = StringUtils.substring("0123456", 3);

System.out.println(substring);

//출력결과 : 3456

StringUtils.substring("문자열",시작위치,종료위치)

문자열의 시작위치 순서부터 종료위치전까지 반환한다.

String substring2 = StringUtils.substring("0123456", 3, 5);

System.out.println(substring2);

//출력결과 : 34

StringUtils.substringAfter("문자열","시작문자")

문자열에서 시작문자를 찾고 그다음부터 반환한다.

String substringAfter = StringUtils.substringAfter("0123456", "3");

System.out.println(substringAfter);

//출력결과 : 456

StringUtils.substringAfterLast("문자열","시작문자")

문자열에서 시작문자를 찾고 마지막 시작문자 그다음부터 반환한다.

String substringAfterLast = StringUtils.substringAfterLast("01230123", "1");

System.out.println(substringAfterLast);

StringUtils.substringBeforeLast("문자열","시작문자")

문자열에서 시작문자를 찾고 마지막 시작문자 그앞에 문자들을 반환한다.

String substringBeforeLast = StringUtils.substringBeforeLast("01230123", "1");

System.out.println(substringBeforeLast);

//출력결과 : 01230

StringUtils.substringBetween("문자열","태그문자")

문자열에서 태그문자를 찾고 태그문자 사이의 값을 반환한다.

String substringBetween = StringUtils.substringBetween("<tag>ss<tag>", "<tag>");

System.out.println(substringBetween);

StringUtils.substringBetween("문자열","태그문자", "태그종료문자")

문자열에서 태그문자와 태그종료문자를 찾고 태그문자 사이의 값을 반환한다.

String substringBetween2 = 

StringUtils.substringBetween("<tag>ss</tag>", "<tag>", "</tag>");

System.out.println(substringBetween2);

//출력결과 : ss

StringUtils.substringsBetween("문자열","태그문자","태그종료문자")

문자열에서 태그문자를 찾고 태그문자 사이의 값을 배열로 반환한다.

String[] substringsBetween = 

StringUtils.substringsBetween("[1],[2],[3]", "[", "]");

for (String string : substringsBetween) {

System.out.print(string+"!");

}

//출력결과 : 1!2!3!

StringUtils.swapCase("문자열")

문자열의 대문자는 소문자 소문자는 대문자로 변환한다.

String swapCase = StringUtils.swapCase("sHOW");

System.out.println(swapCase);

//출력결과 : Show

StringUtils.toCodePoints("문자열")

문자열을 코드포인트형태로 변환하여 int배열로 반환한다.

int[] toCodePoints = StringUtils.toCodePoints("int");

System.out.println(toCodePoints);

for (int num : toCodePoints) {

System.out.print(num+"!");

}

//출력결과 : 105!110!116!

StringUtils.trim("문자열")

문자열의 앞뒤공백을 제거한다.

String trim = StringUtils.trim(" s h o w ");

System.out.println(trim);

//출력결과 : s h o w

StringUtils.trimToEmpty("문자열")

문자열의 앞뒤공백을 제거한다

문자열이 null,"","   "이면  ""로 반환환다.

String trimToEmpty = StringUtils.trimToEmpty(" show ");

System.out.println(trimToEmpty);

//출력결과 : s h o w

StringUtils.trimToNull("문자열")

문자열의 앞뒤공백을 제거한다

문자열이 null,"","   "이면  null로 반환환다.

String trimToNull = StringUtils.trimToNull(" show ");

System.out.println(trimToNull);

//출력결과 : s h o w

StringUtils.trimToNull("문자열" ,잘라낼크기)

문자열을 잘라낼크기만큼 잘라낸다.

String truncate = StringUtils.truncate("0123456", 4);

System.out.println(truncate);

//출력결과 : 0123

StringUtils.trimToNull("문자열" ,잘라낼시작크기,잘라낼종료크기)

문자열을 잘라낼시작크기에서 종료크기만큼 잘라낸다.

String truncate2 = StringUtils.truncate("0123456", 1, 5);

System.out.println(truncate2);

//출력결과 : 12345

StringUtils.uncapitalize("문자열")

문자열의 첫글자가 대문자이면 소문자로 변환한다.

String uncapitalize = StringUtils.uncapitalize("SHOW");

System.out.println(uncapitalize);

//출력결과 : sHOW

StringUtils.unwrap("문자열","문자")

문자열이 문자로 감싸져있다면 풀어서 반환한다.

String unwrap = StringUtils.unwrap("!show!", "!");

System.out.println(unwrap);

//출력결과 : show


StringUtils.unwrap("문자열")

문자열을 대문자로 변경해서 반환한다

String upperCase = StringUtils.upperCase("show");

System.out.println(upperCase);

//출력결과 : SHOW


StringUtils.wrap("문자열","문자")

문자열이 문자로 감싸서 풀어서 반환한다.

String wrap = StringUtils.wrap("show", "!");

System.out.println(wrap);

//출력결과 : !show!

StringUtils.wrap("문자열","문자")

문자열의 시작과 끝에 문자가 없으면 추가해서 반환한다.

String wrapIfMissing = StringUtils.wrapIfMissing("show!", "!");

System.out.println(wrapIfMissing);

//출력결과 : !show!



JAVA  StringUtils 문자열 작업 - 1 보러가기(Click)

java StringUtils 문자열 작업 - 1 Method

String abbreviate ,String appendIfMissing ,String appendIfMissingIgnoreCase ,String capitalize ,String chomp ,String chomp2 ,String chop ,String center ,String center2 ,int compare ,int compareIgnoreCase ,boolean contains ,boolean containsAny ,boolean containsIgnoreCase ,boolean containsNone ,boolean containsOnly ,boolean containsWhitespace ,int countMatches ,String defaultIfBlank ,String defaultIfEmpty ,String defaultString ,String deleteWhitespace ,String difference ,boolean endsWith ,boolean endsWithAny ,boolean endsWithIgnoreCase ,boolean equals ,boolean equalsAny ,boolean equalsAnyIgnoreCase ,boolean equalsIgnoreCase ,String firstNonBlank ,String getCommonPrefix ,String getDigits ,int indexOf ,int indexOfAny ,int indexOfAnyBut ,int indexOfDifference ,int indexOfIgnoreCase 



JAVA  StringUtils 문자열 작업 - 2 보러가기(Click)

java StringUtils 문자열 작업 - 2 Method

boolean isAllBlank ,boolean isAllEmpty ,boolean isAllLowerCase ,boolean isAllUpperCase ,boolean isAlpha ,boolean isAlphanumeric ,boolean isAlphanumericSpace ,boolean isAlphaSpace ,boolean isAnyBlank ,boolean isAnyEmpty ,boolean isAsciiPrintable ,boolean isBlank ,boolean isEmpty ,boolean isMixedCase ,boolean isNoneBlank ,boolean isNoneEmpty ,boolean isNotBlank ,boolean isNotEmpty ,boolean isNumeric ,boolean isNumericSpace ,boolean isWhitespace ,boolean startsWith ,boolean startsWithAny ,boolean startsWithIgnoreCase ,String join ,String joinWith ,int lastIndexOf ,int lastIndexOf2 ,int lastIndexOfAny ,int lastIndexOfIgnoreCase ,int lastIndexOfIgnoreCase2 ,int lastOrdinalIndexOf ,String left ,String leftPad ,int length ,String lowerCase 


JAVA  StringUtils 문자열 작업 - 3 보러가기(Click)

java StringUtils 문자열 작업 - 3 Method

String mid ,String normalizeSpace ,int ordinalIndexOf ,String overlay ,String prependIfMissing ,String prependIfMissingIgnoreCase ,String remove ,String removeAll ,String removeEnd ,String removeEndIgnoreCase ,String removeFirst ,String removeIgnoreCase ,String removePattern ,String removeStart ,String removeStartIgnoreCase ,String repeat ,String replace ,String replace2 ,String replaceAll ,String replaceChars ,String replaceEach ,String replaceEachRepeatedly ,String replaceFirst ,String replaceIgnoreCase ,String replaceOnce ,String replaceOnceIgnoreCase ,String replacePattern ,String reverse ,String reverseDelimited ,String right ,String rightPad ,String rotate



+ Recent posts