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



자바 개발할때 유용한 라이브러리(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.mid("문자열",시작위치,가져올길이)
문자열을 입력된 시작위치에서 가져올길이 만큼가져온다
String mid = StringUtils.mid("showmethemoney", 4, 5);
System.out.println(mid);
//출력결과 : methe

StringUtils.normalizeSpace("문자열")
문자열의 앞뒤 공백을 제거하고 중간에 여러 공백문자를 제거한다.
String normalizeSpace = StringUtils.normalizeSpace("show \tme the money");
System.out.println(normalizeSpace);
//출력결과 : show me the money
StringUtils.ordinalIndexOf("문자열","찾을문자열",카운트수)
문자열에서 찾을문자열을 찾고 카운트하다 카운수에 만족한 위치를 반환한다.
null이거나 카운트수에 만족한 문자가 없을경우 -1을 반환한다.
int ordinalIndexOf = StringUtils.ordinalIndexOf("abcabcabcabc", "abc", 3);
System.out.println(ordinalIndexOf);
//출력결과 : 6
StringUtils.overlay("문자열","넣을문자열",시작위치, 끝위치)
문자열안에 시작위치부터 끝위치전까지 넣을 문자열로 변환한다.
String overlay = StringUtils.overlay("0123456789", "**", 2, 7);
System.out.println(overlay);
//출력결과 : 01**789

StringUtils.prependIfMissing("문자열","접두사","부가접두사")
문자열이 접두사나 부가접두사로 시작하지 않을경우 접두사를 추가한다.
String prependIfMissing = StringUtils.prependIfMissing("Show", "me", "the");
System.out.println(prependIfMissing);
//출력결과 : meShow

StringUtils.prependIfMissing("문자열","접두사","부가접두사")
문자열이 접두사나 부가접두사로 시작하지 않을경우 접두사를 추가한다.(대/소문자를 구분안한다)
String prependIfMissingIgnoreCase = StringUtils.prependIfMissingIgnoreCase("Show", "me", "show");
System.out.println(prependIfMissingIgnoreCase);
//출력결과 : Show
StringUtils.remove("문자열","제거할문자")
문자열안에 제거할 문자가 있을경우 제거하여 반환한다(반복가능).
String remove = StringUtils.remove("s**h**o**w", "**");
System.out.println(remove);
//출력결과 : show

StringUtils.removeAll("문자열","정규식")
문자열안에 정규식에 포함하는 문자가 있을경우 제거하여 반환한다.
String removeAll = StringUtils.removeAll("showMETHEMONEY", "[A-Z]");
System.out.println(removeAll);
//출력결과 : show

StringUtils.removeEnd("문자열","제거할문자")
문자열 마지막에 제가할문자가 있을경우 제거한다.
String removeEnd = StringUtils.removeEnd("showME","ME");
System.out.println(removeEnd);
//출력결과 : show

StringUtils.removeEndIgnoreCase("문자열","제거할문자")
문자열 마지막에 제가할문자가 있을경우 제거한다.(대/소문자를 구분안한다)
String removeEndIgnoreCase = StringUtils.removeEndIgnoreCase("showME", "me");
System.out.println(removeEndIgnoreCase);
//출력결과 : show

StringUtils.removeFirst("문자열","정규식")
문자열안에 정규식에 포함하는 문자가 있을경우 첫번째를 제거하여 반환한다.
String removeFirst = StringUtils.removeFirst("<test>show", "<.*>");
System.out.println(removeFirst);
//출력결과 : show

StringUtils.removeIgnoreCase("문자열","제거할문자")
문자열안에 제거할 문자가 있을경우 제거하여 반환한다(반복가능).(대/소문자를 구분안한다)
String removeIgnoreCase = StringUtils.removeIgnoreCase("sThtotwT", "t");
System.out.println(removeIgnoreCase);
//출력결과 : show



StringUtils.removePattern("문자열","제거할패턴")
문자열안에 제거할 패턴이 있을경우 패턴안의 내용까지 제거후 반환한다.
String removePattern = StringUtils.removePattern("<test>\n<test>show", "<.*>");
System.out.println(removePattern);
//출력결과 : show

StringUtils.removeStart("문자열","제거할문자")
문자열안에 첫번쨰 제거할 문자를 제거한 후 반환한다.
String removeStart = StringUtils.removeStart("showshow", "show");
System.out.println(removeStart);
//출력결과 : show
StringUtils.removeStartIgnoreCase("문자열","제거할문자")
문자열안에 첫번쨰 제거할 문자를 제거한 후 반환한다.(대/소문자를 구분안한다)
String removeStartIgnoreCase = StringUtils.removeStartIgnoreCase("showshow", "SHOW");
System.out.println(removeStartIgnoreCase);
//출력결과 : show
StringUtils.repeat("문자열","구분자",반복할숫자)
문자열을 반복할 숫자만큼 반복하여 반환한다.
구분자가 없을경우 그냥 반복하여 반환한다.
String repeat = StringUtils.repeat("show",",", 3);
System.out.println(repeat);
//출력결과 : show,show,show
StringUtils.replace("문자열","찾을문자","변경문자")
문자열에서 찾을 문자열을 찾고 변경문자로 변경하여 반환한다.
String replace = StringUtils.replace("testtest", "test", "show");
System.out.println(replace);
//출력결과 : showshow

StringUtils.replace("문자열","찾을문자","변경문자",변경횟수)
문자열에서 찾을 문자열을 찾고 변경횟수만큼 변경문자로 변경하여 반환한다.
String replace2 = StringUtils.replace("testtest", "test", "show",1);
System.out.println(replace2);
//출력결과 : showtest

StringUtils.replaceAll("문자열","정규식","변경문자")
문자열에서 정규식에 포함되는 문자를 찾고 
변경문자로 변경하여 반환한다.
String replaceAll = StringUtils.replaceAll("SHOWshowSHOW", "[A-Z]", "^");
System.out.println(replaceAll);
//출력결과 : ^^^^show^^^^

StringUtils.replaceChars("문자열","변경할문자","변경문자")
문자열에서 변경할 문자를 한글자씩 찾고 변경문자로 변경한다.
String replaceChars = StringUtils.replaceChars("mhoe", "me", "sw");
System.out.println(replaceChars);
//출력결과 : show
StringUtils.replaceEach("문자열",변경할문자배열,변경문자배열)
문자열에서 변경할 문자배열을 확인후 있으면 변경문자배열로 변경하여 반환한다.
String replaceEach =
StringUtils.replaceEach("methe", new String[]{"me", "the"}, new String[]{"sh", "ow"});
System.out.println(replaceEach);
//출력결과 : show

StringUtils.replaceEachRepeatedly("문자열",변경할문자배열,변경문자배열)
문자열에서 변경할 문자배열을 확인후 그 단어를 변경문자배열에 확인하여
변경문자배열과 겹치지 않은 단어로 변경한다.
쓸일없을거같다.
String replaceEachRepeatedly = 
StringUtils.replaceEachRepeatedly("me", new String[]{"m", "e"}, new String[]{"e", "d"});
System.out.println(replaceEachRepeatedly);
//출력결과 : dd
StringUtils.replaceFirst("문자열","찾을문자열","변경문자")
문자열에서 찾을문자열을 찾아 첫번째를 변경문자로 변경 후 반환한다.(정규식사용가능)
String replaceFirst = StringUtils.replaceFirst("show56show", "show", "1234");
System.out.println(replaceFirst);
//출력결과 : 123456show
StringUtils.replaceFirst("문자열","찾을문자열","변경문자")
문자열에서 찾을문자열을 찾아 변경문자로 변경 후 반환한다.(대/소문자를 구분안한다)
String replaceIgnoreCase = StringUtils.replaceIgnoreCase("Aa", "a", "1");
System.out.println(replaceIgnoreCase);
//출력결과 : 11
StringUtils.replaceOnce("문자열","찾을문자열","변경문자")
문자열에서 찾을문자열을 찾아  한번만 변경문자로 변경 후 반환한다.(정규표현식사용불가)
String replaceOnce = StringUtils.replaceOnce("sshow", "s", "1");
System.out.println(replaceOnce);
//출력결과 : 1show
StringUtils.replaceOnceIgnoreCase("문자열","찾을문자열","변경문자")
문자열에서 찾을문자열을 찾아  한번만 변경문자로 변경 후 반환한다.(대/소문자를 구분안한다,정규표현식사용불가)
String replaceOnceIgnoreCase = StringUtils.replaceOnceIgnoreCase("sshow", "S", "1");
System.out.println(replaceOnceIgnoreCase);
//출력결과 : 1show
StringUtils.replacePattern("문자열","정규식","변경문자")
문자열에서 정규식에 포함되어있는 문자를 변경문자로 변경 후 반환한다.
String replacePattern = StringUtils.replacePattern("<__>test<__>me", "<.*>", "show");
System.out.println(replacePattern);
//출력결과 : showme

StringUtils.reverse("문자열")
문자열을 반대로 변환후 반환한다.
String reverse = StringUtils.reverse("show");
System.out.println(reverse);
//출력결과 : wohs
StringUtils.reverse("문자열",'구분자'(char형태문자))
구분자 기준으로 순서를 반대로 바꾼후 반환한다.
구분자가 아닌 문자는 반대로 변환되지 않는다.
String reverseDelimited = StringUtils.reverseDelimited("123.456.789", '.');
System.out.println(reverseDelimited);
//출력결과 : 789.456.123

StringUtils.right("문자열",가져올크기)
문자열의 오른쪽을 기준으로 가져올크기 만큼 반환한다.
String right = StringUtils.right("show", 2);
System.out.println(right);
//출력결과 : ow
StringUtils.rightPad("문자열",문자크기,"추가할문자")
문자열의 오른쪽에 문자크기만큼 추가할문자를 추가 후 반환한다.
추가할문자가 없을 경우 공백으로 추가 후 반환환다.
String rightPad = StringUtils.rightPad("show", 10, "!@#$");
System.out.println(rightPad);
//출력결과 : show!@#$!@

StringUtils.rotate("문자열",이동할숫자)
문자열을 이동할숫자만큼 이동한다 (양수방향 ->,음수방향<-)
String rotate = StringUtils.rotate("show", 2);
System.out.println(rotate);
//출력결과 : owsh



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 문자열 작업 - 4 보러가기(Click)

java StringUtils 문자열 작업 - 4 Method

String[] split ,String[] split2 ,String[] splitByCharacterType ,String[] splitByCharacterTypeCamelCase ,String[] splitByWholeSeparator ,String[] splitByWholeSeparatorPreserveAllTokens ,String[] splitPreserveAllTokens ,String[] splitPreserveAllTokens2 ,String strip ,String stripAccents ,String[] stripAll ,String stripEnd ,String stripStart ,String stripToEmpty ,String stripToNull ,String substring ,String substring2 ,String substringAfter ,String substringAfterLast ,String substringBeforeLast ,String substringBetween ,String substringBetween2 ,String[] substringsBetween ,String swapCase ,int[] toCodePoints ,String trim ,String trimToEmpty ,String trimToNull ,String truncate ,String truncate2 ,String uncapitalize ,String unwrap ,String upperCase ,String wrap ,String wrapIfMissing



자바 개발할때 유용한 라이브러리(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.isAllBlank("문자열","문자열")

모든 문자열이 "",null," "(공백)이면 true를 반환한다.

boolean isAllBlank = StringUtils.isAllBlank(" ",null);

System.out.println(isAllBlank);

//출력결과 : true


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

모든 문자열이 "",null이면 true를 반환한다.

boolean isAllEmpty = StringUtils.isAllEmpty("",null);

System.out.println(isAllEmpty);

//출력결과 : true

StringUtils.isAllLowerCase("문자열")

문자열이 소문자이면 true를 반환한다.

boolean isAllLowerCase = StringUtils.isAllLowerCase("show");

System.out.println(isAllLowerCase);

//출력결과 : true


StringUtils.isAllUpperCase("문자열")

문자열이 대문자이면 true를 반환한다.

boolean isAllUpperCase = StringUtils.isAllUpperCase("SHOW");

System.out.println(isAllUpperCase);

//출력결과 : true


StringUtils.isAlpha("문자열")

문자열이 문자로 구성되어있으면 true를 반환한다(숫자,특수문자,공백제외).

boolean isAlpha = StringUtils.isAlpha("show미더money");

System.out.println(isAlpha);

//출력결과 : true


StringUtils.isAlphanumeric("문자열")

문자열이 문자,숫자로 구성되어있으면 true를 반환한다(특수문자,공백제외).

boolean isAlphanumeric = StringUtils.isAlphanumeric("show미더money");

System.out.println(isAlphanumeric);

//출력결과 : true

StringUtils.isAlphanumericSpace("문자열")

문자열이 문자,숫자,공백으로 구성되어있으면 true를 반환한다(특수문자제외).

boolean isAlphanumericSpace = StringUtils.isAlphanumericSpace("show 미 더 money");

System.out.println(isAlphanumericSpace);

//출력결과 : true

StringUtils.isAlphaSpace("문자열")

문자열이 문자,공백으로 구성되어있으면 true를 반환한다(숫자,특수문자제외).

boolean isAlphaSpace = StringUtils.isAlphaSpace("show 미 더 money");

System.out.println(isAlphaSpace);

//출력결과 : true

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

문자열들중 "",null,공백이 하나라도 있으면 true를 반환한다.

vararg형식이므로 배열도 가능하다.

new String[] {} 배열안에 값이 하나도 없다면 false를 반환한다.

boolean isAnyBlank = StringUtils.isAnyBlank(new String[] {" ","가"});

System.out.println(isAnyBlank);

//출력결과 : true

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

문자열들중 "",null이 하나라도 있으면 true를 반환한다.

vararg형식이므로 배열도 가능하다.

new String[] {} 배열안에 값이 하나도 없다면 false를 반환한다.

boolean isAnyEmpty = StringUtils.isAnyEmpty(new String[] {"","가"});

System.out.println(isAnyEmpty);

//출력결과 : true


StringUtils.isAsciiPrintable("문자열")

ASCII 인쇄가능한 문자만 있을경우 true를 반환한다.

boolean isAsciiPrintable = StringUtils.isAsciiPrintable("show");

System.out.println(isAsciiPrintable);

//출력결과 : true

StringUtils.isBlank("문자열")

문자열이 "",null,공백이라면 true를 반환한다.

boolean isBlank = StringUtils.isBlank(" ");

System.out.println(isBlank);

//출력결과 : true


StringUtils.isEmpty("문자열")

문자열이 "",null라면 true를 반환한다.

boolean isEmpty = StringUtils.isEmpty("");

System.out.println(isEmpty);

//출력결과 : true

StringUtils.isMixedCase("문자열")

문자열이 대/소문자가 혼합되어있으면 true를 반환한다.

boolean isMixedCase = StringUtils.isMixedCase("Show");

System.out.println(isMixedCase);

//출력결과 : true

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

문자열들에 "",null,공백이 없다면 true를 반환한다.

vararg형식이므로 배열도 가능하다.

new String[] {} 배열안에 값이 하나도 없다면 true를 반환한다.

boolean isNoneBlank = StringUtils.isNoneBlank("Show","me");

System.out.println(isNoneBlank);

//출력결과 : true

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

문자열들에 "",null이 없다면 true를 반환한다.

vararg형식이므로 배열도 가능하다.

new String[] {} 배열안에 값이 하나도 없다면 true를 반환한다.

boolean isNoneEmpty = StringUtils.isNoneEmpty("Show","me");

System.out.println(isNoneEmpty);

//출력결과 : true

StringUtils.isNotBlank("문자열")

문자열이 "",null,공백이 아니라면 true를 반환한다.

boolean isNotBlank = StringUtils.isNotBlank("Show");

System.out.println(isNotBlank);

//출력결과 : true

StringUtils.isNotEmpty("문자열")

문자열이 "",null이 아니라면 true를 반환한다.

boolean isNotEmpty = StringUtils.isNotEmpty(" ");

System.out.println(isNotEmpty);

//출력결과 : true

StringUtils.isNumeric("문자열")

문자열이 숫자라면 true를 반환한다.

음수는 인식하지 못한다.

boolean isNumeric = StringUtils.isNumeric("123");

System.out.println(isNumeric);

//출력결과 : true

StringUtils.isNumericSpace("문자열")

문자열이 띄어쓰기를 포함한 숫자이거나 그냥 숫자라면 true를 반환한다.

음수는 인식하지 못한다.

boolean isNumericSpace = StringUtils.isNumericSpace("1 2 3");

System.out.println(isNumericSpace);

//출력결과 : true

StringUtils.isWhitespace("문자열")

문자열이 "",공백이라면 true를 반환한다.

boolean isWhitespace = StringUtils.isWhitespace(" ");

System.out.println(isWhitespace);

//출력결과 : true

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

문자열의 시작이 시작문자열과 같다면 true를 반환한다.

문자열과 시작문자열이 null,null이여도 true를 반환한다.

boolean startsWith = StringUtils.startsWith("ShowMeTheMoney", "Show");

System.out.println(startsWith);

//출력결과 : true

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

문자열의 시작이 시작문자열중 하나라도 같다면 true를 반환한다.

vararg형식이므로 배열도 가능하다.

new String[] {} 배열안에 값이 하나도 없다면 true를 반환한다.

boolean startsWithAny = StringUtils.startsWithAny("ShowMeTheMoney", new String[] {null, "xyz", "Show"});

System.out.println(startsWithAny);

//출력결과 : true

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

문자열의 시작이 시작문자열이 같다면 true를 반환한다.(대/소문자를 구분안한다)

boolean startsWithIgnoreCase = StringUtils.startsWithIgnoreCase("ShowMeTheMoney", "show");

System.out.println(startsWithIgnoreCase);

//출력결과 : true

StringUtils.join(각종배열,"구분자")

여러종류의 배열을 구분자로 구분한 문자열을 반환해준다.

구분자가 없을경우 배열을 문자열 형태로 바꿔준다.

"",null은 ""로 표시된다.

String join = StringUtils.join( new String[] {"show", "me", "the","money"}, "*");

System.out.println(join);

//출력결과 : show*me*the*money

StringUtils.joinWith("구분자",각종배열)

여러종류의 배열을 구분자로 구분한 문자열을 반환해준다.

구분자가 없을경우 배열을 문자열 형태로 바꿔준다.

"",null은 ""로 표시된다.

String joinWith = StringUtils.joinWith("*", new String[] {"show", "me", "the","money"});

System.out.println(joinWith);

//출력결과 : show*me*the*money


StringUtils.lastIndexOf("문자열","찾을문자열")

문자열에서 찾을 문자열을 확인 후 마지막 문자열의 위치를 반환한다.

문자열이 "",null이면 -1을 반환한다.

int lastIndexOf = StringUtils.lastIndexOf("aaaaaaaaaa", "a");

System.out.println(lastIndexOf);

//출력결과 : 9

StringUtils.lastIndexOf("문자열","찾을문자열",검색범위(int형))

문자열에서 검색범위안에서 찾을 문자열을 확인 후 마지막 문자열의 위치를 반환한다.

문자열이 "",null이면 -1을 반환한다.

int lastIndexOf2 = StringUtils.lastIndexOf("aaaaaaaaaa", "a", 5);

System.out.println(lastIndexOf2);

//출력결과 : 5


StringUtils.lastIndexOfAny("문자열","찾을문자열","찾을문자열")

문자열에서 검색범위안에서 찾을 문자열을 확인 후 마지막 문자열의 위치를 반환한다.

문자열이 "",null이면 -1을 반환한다.

찾을문자열에 같은 문자열이 없고 찾을문자열에 공백이 있을 경우 문자열의 크기를 반환한다.

vararg형식이므로 배열도 가능하다.

new String[] {} 배열안에 값이 하나도 없다면 -1를 반환한다.

int lastIndexOfAny = StringUtils.lastIndexOfAny("aaaaa", new String[] {"a","b"});

System.out.println(lastIndexOfAny);

//출력결과 : 4

StringUtils.lastIndexOfIgnoreCase("문자열","찾을문자열")

문자열에서 찾을 문자열을 확인 후 마지막 문자열의 위치를 반환한다.(대/소문자를 구분안한다)

문자열이 "",null이면 -1을 반환한다.

int lastIndexOfIgnoreCase = StringUtils.lastIndexOfIgnoreCase("aaaaaaaaaa", "A");

System.out.println(lastIndexOfIgnoreCase);

//출력결과 : 6

StringUtils.lastIndexOfIgnoreCase("문자열","찾을문자열")

문자열에서 검색범위안에서 찾을 문자열을 확인 후 마지막 문자열의 위치를 반환한다.(대/소문자를 구분안한다)

문자열이 "",null이면 -1을 반환한다.

int lastIndexOfIgnoreCase2 = StringUtils.lastIndexOfIgnoreCase("aaaaaaaaaa", "A",5);

System.out.println(lastIndexOfIgnoreCase2);

//출력결과 : 5

StringUtils.lastIndexOfIgnoreCase("문자열","찾을문자열",검색시작숫자(int형))

문자열에서 검색시작숫자부터 찾을 문자열을 확인 후 마지막 문자열의 위치를 반환한다.(1부터 시작한다)

문자열이 "",null이면 -1을 반환한다.

int lastOrdinalIndexOf = StringUtils.lastOrdinalIndexOf("aaaaaaaaaa", "a", 4);

System.out.println(lastOrdinalIndexOf);

//출력결과 : 9


StringUtils.left("문자열",시작할위치(int형))

시작할 위치 기준으로 왼쪽글자를 가져온다.

String left = StringUtils.left("show", 2);

System.out.println(left);

//출력결과  : sh

StringUtils.left("문자열",문자열크기,"추가단어")

문자열 크기만큼 왼쪽에 추가단어를 생성한다.

추가단어가 없을경우 공백을 추가한다.

String leftPad = StringUtils.leftPad("show", 10, "*");

System.out.println(leftPad);

//출력결과 : ******show


StringUtils.length("문자열")

문자열의 크기를 반환한다(1부터시작한다).

null,""이면  0을 반환한다.

int length = StringUtils.length("show");

System.out.println(length);

//출력결과 : 4


StringUtils.length("문자열")

문자열을 소문자로 반환한다.

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

System.out.println(lowerCase);

//출력결과 : 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 문자열 작업 - 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


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

java StringUtils 문자열 작업 - 4 Method

String[] split ,String[] split2 ,String[] splitByCharacterType ,String[] splitByCharacterTypeCamelCase ,String[] splitByWholeSeparator ,String[] splitByWholeSeparatorPreserveAllTokens ,String[] splitPreserveAllTokens ,String[] splitPreserveAllTokens2 ,String strip ,String stripAccents ,String[] stripAll ,String stripEnd ,String stripStart ,String stripToEmpty ,String stripToNull ,String substring ,String substring2 ,String substringAfter ,String substringAfterLast ,String substringBeforeLast ,String substringBetween ,String substringBetween2 ,String[] substringsBetween ,String swapCase ,int[] toCodePoints ,String trim ,String trimToEmpty ,String trimToNull ,String truncate ,String truncate2 ,String uncapitalize ,String unwrap ,String upperCase ,String wrap ,String wrapIfMissing


자바 개발할때 유용한 라이브러리(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.abbreviate(문자열, 보여줄숫자(...포함))  

문자열 축소하기 뒤에 숫자는 4보다 커야한다.

긴글을 정해진 글자만큼만 보여주고 ... 으로 요약한다고 생각하면된다.

String abbreviate = StringUtils.abbreviate("ShowMeTheMoney", 7);

System.out.println(abbreviate);

//출력결과 : Show...

StringUtils.appendIfMissing(문자열, 추가할단어, 마지막단어)

마지막단어가 다를 경우 추가할단어를 추가해준다(대소문자를 구분한다),

String appendIfMissing = StringUtils.appendIfMissing("ShowMeTheMoney", "-From.Choi", "Money");

System.out.println(appendIfMissing);

//출력결과 : ShowMeTheMoney

appendIfMissing = StringUtils.appendIfMissing("ShowMeTheMoney", "-From.Choi", "test");

System.out.println(appendIfMissing);

//출력결과 : ShowMeTheMoney-From.Choi

StringUtils.appendIfMissingIgnoreCase(문자열, "추가할단어", "마지막단어")

StringUtils.appendIfMissing와 같으나 대소문자를 구분하지않는다.

String appendIfMissingIgnoreCase = StringUtils.appendIfMissingIgnoreCase("ShowMeTheMoney", "-From.Choi", "money");

System.out.println(appendIfMissingIgnoreCase);

//출력결과 : ShowMeTheMoney

StringUtils.capitalize(문자열)

첫글자를 대문자로 변환한다.

String capitalize = StringUtils.capitalize("sss");

System.out.println(capitalize);

출력결과 : Sss

StringUtils.chomp(문자열);

마지막에 개행문자 \n,\r,\r\n이 있을 경우 제거한다.

String chomp = StringUtils.chomp("ssssss\n");

System.out.println(chomp);

//출력결과 : ssssss

StringUtils.chomp(문자열,제거할문자);

마지막에 제거할 문자가 있을 경우 제거한다.

String chomp2 = StringUtils.chomp("ssssss#","#");

System.out.println(chomp2);

//출력결과 : ssssss

StringUtils.chop(문자열)

마지막 문자 하나를 제거한다.

String chop = StringUtils.chop("ssssss");

System.out.println(chop);

//출력결과 : sssss

StringUtils.center(문자열, 글자수);

문자열에 설정한 글자수만큼 공백을 추가한다.

오른쪽,왼쪽 순으로 추가된다.

String center = StringUtils.center("sss", 12);

System.out.println(center);

//출력결과 :     sss     

StringUtils.center(문자열, 글자수, 추가될단어);

문자열에 설정한 글자수만큼 추가될 단어를 추가한다.

오른쪽,왼쪽 순으로 추가된다.

String center2 = StringUtils.center("sss", 12, "#");

System.out.println(center2);

//출력결과 : ####sss#####

StringUtils.compare(문자열, 비교할문자열)

문자열을 십진수로 변환후 비교한다.

문자를 유니코드 코드 (10진수) 로 변환 출력

System.out.println((int) '가');

System.out.println((int) '나');

//출력결과 : 44032

//출력결과 : 45208

int compare = StringUtils.compare("가", "나");

System.out.println(compare);

//출력결과 : -1176

//사용할 일이 있을려나...

StringUtils.compareIgnoreCase(문자열, 비교할문자열)

문자열을 십진수로 변환후 비교한다.(대소문자를 비교안함)

int compareIgnoreCase = StringUtils.compareIgnoreCase("S", "s");

System.out.println(compareIgnoreCase);

//출력결과 : 0

StringUtils.contains(문자열, 비교할문자열)

문자열안에 비교할문자열이 포함되어있으면 true를 반환한다.

boolean contains = StringUtils.contains("ssss", "ss");

System.out.println(contains);

//출력결과 : true

StringUtils.containsAny(문자열, 비교할문자열, 비교할문자열)

문자열안에 비교할문자열이 하나라도 포함되어있으면 true를 반환한다.

boolean containsAny = StringUtils.containsAny("안녕하세요", "동안");

System.out.println(containsAny);

//출력결과 : true

StringUtils.containsIgnoreCase(문자열, 비교할문자열)

문자열안에 비교할문자열이 포함되어있으면 true를 반환한다.(대소문자를 비교안함)

boolean containsIgnoreCase = StringUtils.containsIgnoreCase("ss", "SS");

System.out.println(containsIgnoreCase);

//출력결과 : true

StringUtils.containsNone(문자열, 비교할문자열)

문자열안에 비교할문자열이 하나라도 포함되어있으면 false를 반환한다.

boolean containsNone = StringUtils.containsNone("ssa", "axx");

System.out.println(containsNone);

//출력결과 : false


StringUtils.containsOnly(문자열, 비교할문자열)

문자열안에 비교할문자열이 모두 포함되어있으면 true를 반환한다.

boolean containsOnly = StringUtils.containsOnly("ssa", "asd");

System.out.println(containsOnly);

//출력결과 : true

StringUtils.containsWhitespace(문자열, 비교할문자열)

문자열안에 공백이 포함되어 있으면 true를 반환한다.

boolean containsWhitespace = StringUtils.containsWhitespace("sss sss sss");

System.out.println(containsWhitespace);

//출력결과 : true

StringUtils.countMatches(문자열, 비교할문자열)

문자열안에 비교할 문자열이 있으면 출력결과에 1씩 추가한다.

int countMatches = StringUtils.countMatches("ccaaaa", "cc");

System.out.println(countMatches);

//출력결과 : 1

StringUtils.defaultIfBlank(문자열, 반환할문자열)

문자열이 띄어쓰기,공백이,null인 경우 반환할 문자열을 반환한다.

String defaultIfBlank = StringUtils.defaultIfBlank(" ", "띄어쓰기,공백이,null일시 반환문자");

System.out.println(defaultIfBlank);

//출력결과 : 공백일시 반환문자

StringUtils.defaultIfEmpty(문자열, 반환할문자열)

문자열이 공백,null인 경우 반환할 문자열을 반환한다.

String defaultIfEmpty = StringUtils.defaultIfEmpty("", "공백,null일시 반환문자");

System.out.println(defaultIfEmpty);

//출력결과 : 공백일시 반환문자

StringUtils.defaultString(문자열, 반환할문자열)

문자열이 null인 경우 반환할 문자열을 반환한다.(반환할문자열이 없을경우 ""로 반환한다.)

String defaultString = StringUtils.defaultString(null,"null일시 반환문자");

System.out.println(defaultString);

//출력결과 : null일시 반환문자

StringUtils.deleteWhitespace(문자열)

문자열에 공백이 있을경우 제거한다.

String deleteWhitespace = StringUtils.deleteWhitespace("안녕 하세요");

System.out.println(deleteWhitespace);

//출력결과 : 안녕하세요


StringUtils.difference(문자열,비교할문자열)

문자열과 비교할문자열을 비교하고 비교할문자열에서 다른부분을 반환한다.

String difference = StringUtils.difference("안녕하시오", "안녕하세오");

System.out.println(difference);

//출력결과 : 세요


StringUtils.endsWith(문자열,마지막문자열)

문자열의 마지막이 마지막문자열과 비교하고 같다면 true을 반환한다.

boolean endsWith = StringUtils.endsWith("안녕하세요.", ".");

System.out.println(endsWith);

//출력결과 : true

StringUtils.endsWithAny(문자열,마지막문자열)

문자열의 마지막이 마지막문자열과 비교하고 같다면(vararg형식) true을 반환한다.(대/소문자를 구분한다)

boolean endsWithAny = StringUtils.endsWithAny("안녕하세요.s", ".S");

System.out.println(endsWithAny);

//출력결과 : false

StringUtils.endsWithAny(문자열,마지막문자열)

문자열의 마지막이 마지막문자열과 비교하고 같다면 true을 반환한다.(대/소문자를 구분안한다)

boolean endsWithIgnoreCase = StringUtils.endsWithIgnoreCase("안녕하세요.s", ".S");

System.out.println(endsWithIgnoreCase);

//출력결과 : true

StringUtils.equals(문자열,비교할문자열)

문자열과 비교할문자열과 같다면 true을 반환한다.

boolean equals = StringUtils.equals("비교", "비교");

System.out.println(equals);

//출력결과 : true


StringUtils.equalsAny(문자열,비교할문자열)

문자열과 비교할문자열과 같다면(vararg형식) true을 반환한다.

boolean equalsAny = StringUtils.equalsAny("ss", "sS","ss");

System.out.println(equalsAny);

//출력결과 : false

StringUtils.equalsAnyIgnoreCase(문자열,비교할문자열)

문자열과 비교할문자열과 같다면(vararg형식) true을 반환한다.(대/소문자를 구분안한다)

boolean equalsAnyIgnoreCase = StringUtils.equalsAnyIgnoreCase("ss", "sS","ss");

System.out.println(equalsAnyIgnoreCase);

//출력결과 : ture

StringUtils.equalsIgnoreCase(문자열,비교할문자열)

문자열과 비교할문자열과 같다면 true을 반환한다.(대/소문자를 구분안한다)

boolean equalsIgnoreCase = StringUtils.equalsIgnoreCase("ss", "sS");

System.out.println(equalsIgnoreCase);

//출력결과 : ture

StringUtils.firstNonBlank(문자열,문자열,문자열)

null,공백,띄어쓰기를 제외한 첫번째 문자열을 가져온다

StringUtils 3.8버전부터 사용가능

String firstNonBlank = StringUtils.firstNonBlank(null, "", " ", "xyz");

     System.out.println(firstNonBlank);

출력결과 : xyz

StringUtils.getCommonPrefix(new String[] {"문자열", "문자열"})

모든 문자열에서 공통된 첫부분을 출력한다.

String getCommonPrefix = StringUtils.getCommonPrefix("sss","ssS","ssa");

System.out.println(getCommonPrefix);

//출력결과 : ss

StringUtils.getDigits("문자열")

Unicode Number(숫자)만 출력한다.

String getDigits = StringUtils.getDigits("123제거된다456");

System.out.println(getDigits);

//출력결과 : 123456

StringUtils.indexOf("문자열","찾을문자열")

문자열중에 찾을 문자열이 포함된 첫번째 인덱스를 반환한다.

int indexOf = StringUtils.indexOf("sS", "S"); 

System.out.println(indexOf);

//출력결과 : 1


StringUtils.indexOfAny("문자열",new String[] {"문자열", "문자열"})

문자열과 배열을 비교하고(vararg형식) 첫번째 인덱스를 반환한다.

int indexOfAny = StringUtils.indexOfAny("녕하세요",new String[] {"", "녕"});

System.out.println(indexOfAny);

//출력결과 : 0

StringUtils.indexOfAnyBut("문자열",new char[] {'문자', '문자'})

문자열과 문자 배열을 비교 후 배열에 없는 첫번째 문자인덱스를 반환한다.

int indexOfAnyBut = StringUtils.indexOfAnyBut("문자",new char[] {'문', '자'});

System.out.println(indexOfAnyBut);

//출력결과 : 2

StringUtils.indexOfDifference("문자열","비교문자열");

문자열과 비교문자열을 비교하고 달라지는 부분의 인덱스를 반환한다.

int indexOfDifference = StringUtils.indexOfDifference("안녕하세요","안녕하시오");

System.out.println(indexOfDifference);

//출력결과 : 3

StringUtils.indexOfIgnoreCase("문자열","찾을문자열")

문자열중에 찾을 문자열이 포함된 첫번째 인덱스를 반환한다.(대/소문자를 구분안한다)

int indexOfIgnoreCase = StringUtils.indexOfIgnoreCase("sS", "S"); 

System.out.println(indexOfIgnoreCase);

//출력결과 : 0



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


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

java StringUtils 문자열 작업 - 4 Method

String[] split ,String[] split2 ,String[] splitByCharacterType ,String[] splitByCharacterTypeCamelCase ,String[] splitByWholeSeparator ,String[] splitByWholeSeparatorPreserveAllTokens ,String[] splitPreserveAllTokens ,String[] splitPreserveAllTokens2 ,String strip ,String stripAccents ,String[] stripAll ,String stripEnd ,String stripStart ,String stripToEmpty ,String stripToNull ,String substring ,String substring2 ,String substringAfter ,String substringAfterLast ,String substringBeforeLast ,String substringBetween ,String substringBetween2 ,String[] substringsBetween ,String swapCase ,int[] toCodePoints ,String trim ,String trimToEmpty ,String trimToNull ,String truncate ,String truncate2 ,String uncapitalize ,String unwrap ,String upperCase ,String wrap ,String wrapIfMissing



자바 초보들이 알아야 할 기본 개념!


특수문자 사용 및 치환


특수문자 사용하기(Split,replace등등)

문자열을 배열로 만들때 사용하는 Split을 사용거나

문자열중 특정문자를 변경할때 사용하는 replaceAll등을 사용한다.

예를들어 ^으로 Split해보면 적용이 안되는 것을 알 수 있다.

String a = "sss^sss";

String[] b = a.split("^");

for (String c : b) {

System.out.println(c);

}


출력결과 :  sss^sss


모든 특수문자가 그런건 아니다.

확인해본 특수문자는 아래와 같다.


특수문자 : $, ^,*, (, ), +, |, [, {, ., ?

사용방법 : ex)\\^


String a = "sss^sss";

String[] b = a.split("\\^"); 

for (String c : b) {

System.out.println(c);

}

출력결과: 

sss

sss


\\를 사용하면 ^을 기준으로 split된것을 확인할 수 있다.


위 특수 문자사용와 다른 특수문자도 있다.


특수문자 : "(큰 따옴표)

사용방법 : \"


String a = "sss"sss";

String[] b = a.split("\"");

for (String c : b) {

System.out.println(c);

}

특수문자 : \(백슬래쉬)

사용방법 : \\\\


String a = "sss\\sss";

String[] b = a.split("\\\\");

for (String c : b) {

System.out.println(c);

}



특수문자 입력하기

개발을 하다보면 문자열을 입력할때 특수문자를 사용할일이 생긴다.


큰 따옴표를 문자열(String)안에 넣어야할경우가 생기게될때 

사용하는 방법이다.


예를들어 문자열큰 따옴표를 넣을일이 생긴다면

String val = """; 이렇게 입력한다면 당연히 오류가 난다.

큰따옴표를 입력하는 방법은 아래와 같다.

String val "\""; 


 

\t

\n 줄 바꿈

\' 작은 따옴표(char에서 사용)

\" 큰 따옴표

\\ 역슬래쉬


System.out.println("Te\tst");

출력결과 : Te st(탭적용)

System.out.println("Te\nst");

출력결과 : Te

st(줄 바꿈 적용)

char b = '\'';

System.out.println(b); 

char문자열은 작은따옴표로 입력하기때문에 사용

출력결과: '(작은따옴표 출력)

System.out.println("Te\"st");

출력결과: Te"st(큰따옴표 출력)






자바 초보들이 알아야 할 기본 개념!


주석

자바파일(*.java)을 컴파일(*.Class 생성)을할때 컴파일하지않는다.


주석은 언제 사용할까?

코멘트용도

-프로그래밍한것을 기록해놓는다.

-동료들과의 협업에 용이하다.

디버깅용도

-어떠한 기능을 잠시 사용안할때 주석처리 해놓는다.


한줄 주석방법

// <-이러한형식 //를 사용하면 한줄 주석이 된다. 

보통 System.out.println("")이나 log를 주석 처리할때 사용한다.

이클립스 단축키

- Ctrl + / : 여러줄이 한꺼번에 주석처리됨. 주석 해제하려면 반대로 하면 된다.


여러줄 주석방법

/*

여러줄 주석은 /*으로 시작하고 */으로 마무리한다.

보통 코멘트를 달거나 긴 개발로직을 주석처리할때 사용한다.

*/

이클립스 단축키

- Ctrl + Shift + / : 블록 주석(/* */)

- Ctrl + Shift + \ : 블록 주석 제거


또 Class위나 Method위에 /**를 입력하고 enter를 입력하면 템플릿이 자동으로 

완성되는 것을 확인할 수 있다. 

ex)

/** 

 * 

 * @author choi 

 * 

 */ 

public class Test{


}


알고리즘을 공부해야하는 이유


알고리즘을 공부해야하는 이유 

-좋은프로그램을 만들기위해

-프로그램을 평가하기 위해

-프로그램을 효율적으로 작성하기위해

-프로그래밍 기술을 향상시키기 위해


알고리즘은 프로그램을 설계할때 사용된다.

좋은 프로그램이란 무엇인지 생각해보자.


좋은 프로그램이란?

속도가 빨라야하고 효율적으로 구동되고 범용성이 높아야한다.


범용성이란?

어떤 제약 조건도 없이 넓은 분야에 응용할 수 있는 성질이라고 생각하면된다,


속도,효율,범용성은 여러사람이 같은 프로그램을 설계하더라도

사람마다 알고리즘이 다르기때문에 각각 차이가 난다.


위에서 말한것처럼 좋은 알고리즘은 좋은 프로그램을 만든다.

간단하면서 당연한 알고리즘을 공부해야하는 이유이다.


알고리즘을 공부하는 방법

알고리즘을 공부한다는 것은 잘알려진 알고리즘을 분석하고 파악하는것으로

시작하는게 좋다.


아무것도 모르는 상태에서 알고리즘을 만들어내는건 쉽지않다.

즉, 알려진 알고리즘을 분석하고 파악하면 머릿속에 개념이 잡힐것이고

또 일부내용을 이용하거나 수정하여 사용할 수 있다.


알고리즘의 조건

-정확한 결과 얻기

알고리즘은 문제를 해결하기 위한 절차인데 문제가 해결될려면 정확한 결과가 나와야한다.

-종료

INPUT을 통해 OUTPUT을 가져올려면 프로그램은 마무리 지어져야한다.

중간에 무한루프에 빠져 종료되지않으면 알고리즘으로 볼 수 없다.


참고문헌 -처음만나는 알고리즘

+ Recent posts