자바 개발할때 유용한 라이브러리(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을 가져올려면 프로그램은 마무리 지어져야한다.

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


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

알고리즘이란?


'문제나 과제를 해결하기 위한 처리 절차를 

구체적인 순서에 따라 표현한 아이디어나 생각'을 말한다.


위에서 말했던 알고리즘은 아이디어나 생각이라고 말했었는데

아이디어나 생각은 전달할 수 없기에 눈에 보이도록 표현해야 한다.


알고리즘을 어렵게 생각할 필요가 없다.

단어만 어색할 뿐이지 우린 알고리즘을 어디서든 적용하고 있었다.

일상생활에 쓰는 음식레시피, 가구 조립설명서 등도 알고리즘의 예(시각화)로 볼 수 있기 때문이다.


음식 레시피를 검색해보면 블로그 등에서 사진을 조리법 순서대로 나열한 걸 볼 수 있다.

즉, 요리를 완성하기 위한 절차알고리즘이라 하고

음식 레시피는 그 절차를 순서에 따라 표현한 시각적으로 표현한 것이다.


INPUT(음식 재료) -> 알고리즘(조리법) -> OUTPUT(완성된 음식)

으로 생각하면 된다.


위 음식 조리 알고리즘을 음식 레시피로 만든 것처럼

알고리즘을 프로그래밍언어(C, JAVA등)로 만들면 프로그램이 된다.


프로그램을 작성할 땐 기획, 설계 순으로 진행되는데


고객의 요구에 의해 기획하고 설계할 때 필요한 것이 알고리즘이다.

우리가 만들 프로그램의 설계서를 만든다고 생각하면 된다.


설계하게 될 때 좋은 알고리즘은 4가지를 충족해야 한다.

1. 알기쉽다.

-여러 명이 작업할 때 이해하기 어렵다면 실수가 생기기 마련이다.

또한 혼자서 한다 해도 수정, 추가에 어려움이 있을 수 있다.


2. 속도가 빠르다.

-INPUT, OUTPUT이 같다 해도 처리하는 시간은 현저히 다를 수 있다.


3. 효율적이다.

-같은 작업을 10명이 하는 것과 1명 이서하는 것이 같다면

1명 이하는 로직을 선택하면 9명은 다른 일을 할 수 있다.


4. 재이용하기 쉽다.

-프로그래밍은 한번 만들고 사용하지 않는 것이 아니기 때문에

다른 곳에서 쉽게 재이용 할 수 있도록 만드는 게 좋다.

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


클래스란?
유사한 특징을 지닌 객체들의 속성을 묶어 놓은 집합체라 할 수 있다.
Object란?
클래스를 사용할 수 있게 실체화한 것이다.
Method란?
클래스 안에 특정 기능을 구현한 것이다.

이제 3가지에 대해 알아보도록 하자.

예를 들어 두 명의 사람이 있는데
이름과 나이가 철수 28살, 미자 20살이라고 한다.
사람이라는 명칭이 클래스이고 
사람들의 정보가 객체라고 생각하면 된다.

클래스에서 생성 가능한 것은 변수와 기능이 있다.

클래스 생성 방법은?


위에 코드를 보면 Person이라는 클래스가 선언되어 있는 걸 볼 수 있는데
Person 클래스 안에는 name, age란 정보(변수)와 자기소개하는 기능(Methods) speak가 있는 걸 볼 수 있다.

이제 위에 클래스를 사용하여 객체(Ojbect)를 선언하는 법을 알아보자.
object 란? 클래스를 실체화하는 것으로 new로 생성한다.



위 코드를 분석해보면,
위 코드에서 객체(Object) 선언하는 부분은 아래 두 코드이다.



Person 이란 Class를 person이라는 객체로 생성한 것인데 생성할 땐 = new 클래스명 형식으로 선언한다.



이 부분은 person이라는 객체에 이름과 나이를 저장해주는 부분이다.
즉 맨 위쪽에서 클래스와 객체를 설명한 대로 Person(사람)이라는 클래스가 있고
그 클래스를 사용하여 객체를 생성하여 이름과 나이를 넣어주면 28살 철수가 만들어진 것이다.



이 부분은 Person Class 안에  speak 메소드를 불러내 사용하는 것이다.
사용하게 되면 콘솔에 "이름과 나이는 : 철수, 28"가 찍히는 것을 확인할 수 있다.


배열이란?


일정한 형태의 모음을 만드는 것이다.

ex)int[] numbers = new int[12];


배 12개 들어가는 박스를 포장한다면?

배[박스] 배박스 = new 배[12]

배가 12개 들어갈 수 있는 박스를 만드는 것으로 생각하면 된다.

[12]

위 형태로 생각하면된다.


다중배열 2차

ex)int[][] numbers = new int[3][12];

배[줄][박스] 배박스 = new 배[3][12]

배 12개 들어있는박스만들고 그 박스를 3줄로 쌓는것이다.

[12]

[12]

[12]

위 형태로 생각하면된다.


다중배열 3차

ex)int[][][] numbers = new int[4][3][12];

배[라인][줄][박스] 배박스 = new 배[4][3][12]

배 12개 들어있는박스만들고 그 박스를 3줄로 쌓아 4라인을 만든다.

| [12] | [12] | [12] | [12] |

| [12] | [12] | [12] | [12] |

| [12] | [12] | [12] | [12] |

위 형태로 생각하면된다.


다중반복문 사용방법은 아래 코드에 표현되어 있다.




배열이란?


배열은 같은 형태의 모음 이라고 생각할 수있다.


ex)int[] numbers = new int[3]; 


즉, 위에 numbers는 int가 3개 들어갈수 있는 것이다.

배열의 시작 숫자 0부터 시작한다.

위처럼 배열 선언한다면 주소값은 0,1,2 세개가 생기게된다.

int[] numbers = new int{1,2,3}; 

형식으로 선언할 수도 있다.


쉽게 말하면 일정한 형태의 모음을 만드는 것으로 보면된다.

ex)

배 12개 들어가는 박스를 포장한다면?

배[박스] 배박스 = new 배[12]

배가 12개 들어갈 수 있는 박스를 만드는 것이다.


반복문인 for문으로 배열의 내용을 확인할 수 있다.


배열 선언 예



+ Recent posts