▸JAVA97 java.util.regex 주요 메소드 [1/1] [ regex 패키지 ] 정규표현식을 다루는 패키지 [ Pattern 클래스] 정규표현식의 컴파일된 버전 정규표현식과 원본 문자열을 객체화(Matcher class)할 수 있는 메소드 제공 [ Matcher 클래스 ] Pattern 클래스의 메소드를 통해 객체화된 원본 문자열 Matcher 클래스의 객체(인스턴스)를 통해 정규표현식을 이용한 다양한 편집 가능 실제로 정규표현식을 사용하는 순서대로 정리해보겠습니다. 정규표현식에 대한 설명은 아래 두 가지 글을 참조하시면 됩니다. 2019/12/10 - [JAVA/기본 문법] - 정규표현식 (메타문자와 주의사항) [1/2] 2019/12/10 - [JAVA/기본 문법] - 정규표현식 (작성 방법 및 전방탐색, 후방탐색) [2/2] [ Pattern.ma.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.util.Random 주요 메소드 [1/1] [ 랜덤 클래스 (Random Class ] 난수 발생 관련 함수 Math 클래스의 난수 생성과 동일한 기능의 메소드를 포함하여, 다른 여러 메소드 보유 랜덤 클래스 인스턴스 생성 후 사용 가능 [ 생성자 ] () : 무작위 난수 생성 (long seed) : 매개변수의 값을 기초로 난수를 발생시킴 seed값을 주면 기초값이 생기기 때문에 다른 인스턴스에서도 동일한 난수가 계속 생성됩니다. 따라서 실제로는 사용되지 않으며 같은 환경에서 여러 번 테스트를 할 때 사용됩니다. C언어에서 난수 생성 기초값을 시간으로 하는 것을 보아 Java도 비슷할 것으로 유추됩니다. 아래와 같이 seed값을 지정해줄 경우 같은 seed값을 가진 인스턴스의 난수는 항상 동일합니다. package study.first; im.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.util.StringTokenizer 주요 메소드 [1/1] [ StringTokenizer Class ] C언어 strtok의 로직과 유사하지만 원본을 훼손하지 않음 문자열을 특정 문자열(구분자)로 나누어 (Token) 및 저장 및 처리 String 클래스의 split()과 비슷하지만, 배열이 아닌 인스턴스 객체를 만들어 저장 인스턴스의 클래스 메소드를 통해 실행시마다 쪼개서 문자열을 반환받음 java.util 패키지는 기본 패키지가 아니기 때문에 import 해줘야 합니다. String의 split() 메소드와 비슷한 것 같지만 작동 방식이 달라 상황에 따라 더 편리한 경우가 생깁니다. 굳이 배열 저장공간을 따로 만들지 않고도 문자를 나눠서 확인할 수 있습니다. (필요한 문자열만 뽑아내기에 적합) [ 생성자 ] (String str) : 공백 기준으로 문자열.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.Enum (열거형) 주요 메소드 [1/1] 이전 글에서 사용한 코드를 그대로 써서 주요 메소드를 정리해보았습니다. package study.first; public class Study { public static void main(String[] args) { } } enum FinalValues { // enum 클래스의 열거 상수 (자동으로 public static final로 선언) CLOCK_SIZE(100), CLOCK_COLOR("White"), BOOK_SIZE(200), BOOK_COLOR("Blue"); // 값을 담을 필드 생성(private 캡슐화) private int size; private String color; // size 생성자 선언 FinalValues(int size) { this.size = size; } .. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.Math (수학계산) 주요 메소드 [1/1] [ Math Class ] 생성자가 private으로 선언되어 있어 인스턴스 생성 불가 모든 필드와 메소드는 static [ abs() ] 절대값 반환 반환 타입은 인자로 전달한 타입과 같음 package study.first; public class Study { public static void main(String[] args) { double a = -12.5; double b = Math.abs(a); System.out.println(b);// 12.5 } } [ ceil() ] 소숫점 값이 있다면 올림값 반환 double 타입 반환만 해주기 때문에 float변수에 담기 위해서는 형변환 필요 argument는 자동으로 double 타입 반환 본래 float 타입 실수는 저장하기 전에 doub.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.StringBuilder (문자열) 주요 메소드 [2/2] [ reverse() ] 문자열을 거꾸로 뒤집어줌 package study.first; public class Study { public static void main(String[] args) { StringBuilder a = new StringBuilder("Hello World"); a.reverse(); System.out.println(a); // "dlroW olleH" } } [ setCharAt() ] 특정 위치의 문자 변경 insert()가 원본 문자열 중간에 삽입이라면 setCharAt()은 해당 위치의 문자를 변경해줌 package study.first; public class Study { public static void main(String[] args) { StringBuil.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.StringBuilder (문자열) 주요 메소드 [1/2] StringBuilder와 StringBuffer 클래스도 String 클래스와 같이 문자열을 다루는 클래스입니다. 다만, String 클래스가 문자열을 생성자로 넣어 인스턴스를 한 번 생성하고 나면 인스턴스가 가진 문자열 값을 변경하지 못하는 단점을 보완한 클래스입니다. 즉, 같은 인스턴스 안의 문자열(char 배열) 필드 값을 추가하거나 변경할 수 있도록 되어 있습니다. 또한 원본 문자열을 바꿀 수 있는만큼 문자열을 다루는 메소드도 더 많이 포함되어 있습니다. 두 가지 클래스는 모두 쓰임과 메소드가 같지만, StringBuffer는 여러곳에서 동시에 같은 문자열 인스턴스에 접근할 때 중복 점유를 막을 수 있는 장치가 되어 있습니다(동기화 처리). 때문에 StringBuilder에 비해 좀 더 무겁.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.String (문자열) 주요 메소드 [4/4] [ format() ] static 메소드로 인스턴스 없이 사용 가능 C언어 printf() 와 비슷한 형태로 형식지정자를 사용해서 출력 가능 1. conversion (형식지정자) 여러가지 형식지정자가 있지만 가장 많이 쓰이는 것은 %d(10진수 정수형), %f(실수형), %s(문자열)이 있습니다. 이 외에도 %x(16진수 정수형), %o(8진수 정수형)이 있습니다. C언어와 거의 같습니다. 형식지정자 및 형식지정자와 짝이 맞는 값을 제외하고 다른 옵션은 선택사항입니다. 2. argument_index 옵션 (1$ : 첫번째 인자, 2$ : 두번째 인자...) 원래 순서대로 출력되는데 그 순서를 바꿔서 출력이 가능합니다. 하지만 숫자를 변수로 사용할 수 없기 때문에 어차피 수동으로 코딩해야해서 자.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.String (문자열) 주요 메소드 [3/4] [ split() ] 문자열을 구분자로 나눠서 배열을 생성해줌 나눌 갯수도 인자값으로 넣어주면 앞에서 갯수만큼만 나눠주고 뒤는 나누지 않음 package study.first; public class Study { public static void main(String[] args) { String a = "aaaaaBaaaBaaaBaaaa"; String[] list = a.split("B"); // 모두 나눔 for (String num : list) System.out.println(num); } } package study.first; public class Study { public static void main(String[] args) { String a = "aaaaaBaaaBaaaBaaa.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.String (문자열) 주요 메소드 [2/4] [ indexOf() ] 원하는 인덱스(위치)부터 앞에서 뒤로 순서대로 문자열 검색 원하는 인덱스를 명시하지 않으면 가장 앞에서부터 뒤로 검색 해당 문자열이 있으면 해당 인덱스를, 없으면 -1 반환 (boolean 타입이 아닌 int 타입 반환) package study.first; public class Study { public static void main(String[] args) { String a = new String("Hello World"); System.out.println(a.indexOf("H")); // 0 System.out.println(a.indexOf("H", 5)); // -1 (앞에서 다섯 번째 글자부터 검색) System.out.println(a.indexOf("h").. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.String (문자열) 주요 메소드 [1/4] 문자열 처리를 돕는 클래스입니다. 메모리 구조편에서 살펴봤듯이 String 타입은 변수가 아니라 클래스의 인스턴스입니다. 즉, 객체이자 참조변수가 되는 것이죠. 원시타입 변수가 아닌 모든 타입은 어떠한 클래스의 인스턴스입니다. String a = "abc" 또는 String a = new String("abc") 형태로 String Class의 인스턴스를 하나 생성했다면 java.lang.String 클래스에 생성자를 문자열로 넣어주고 인스턴스를 생성했다는 의미입니다. 그래서 a.method()형태로 해당 클래스에 포함된 메소드를 사용할 수 있게 되는 것입니다. 또한 system.out.println(a) 형태로 출력할 수 있는 것은 String Class에서 toString() 메소드가 생성자로.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.Object 주요 메소드 [1/1] 모든 클래스가 기본적으로 상속받는 Object 클래스의 주요 메소드입니다. [ hashCode() ] 인스턴스가 저장된 힙 영역의 주소값을 해쉬값으로 변환해서 반환 서로 다른 인스턴스 또는 객체는 다른 주소에 저장돼 있으므로 다른 값 출력 package study.first; public class Study { public static void main(String[] args) { Example a = new Example(); Example b = new Example(); System.out.println(a.hashCode()); System.out.println(b.hashCode()); } } class Example { int a = 1; } [ getClass() ] 인스턴스가 가지고.. ▸JAVA/라이브러리(API) 2019. 12. 10. 정규표현식 (작성 방법 및 전방탐색, 후방탐색) [2/2] Email 주소를 검사하는 식을 예제로 들어보겠습니다. 알아보기 쉽게 생략할 수 있는 역슬레시는 생략했지만, 실제로 사용할 때는 특수문자에 모두 역슬레시를 붙여 일반 문자임을 정확히 명시해두는 것이 좋습니다. ※ Email 규칙검사 예제 1. [^-_][\\w-_]+ → ID 검사 - \\w == [a-z][A-Z][0-9], 하이픈(-), 언더바(_)만 허용함 - 시작문자에 하이픈(-)및 언더바(_)는 불허함 - 메타문자 +를 붙여 한글자 이상이 무조건 있어야 하도록 함 - 하이픈은 [ ] 에서 사용하는 범위지정 메타문자이지만, 앞뒤 범위가 없으면 일반 문자로 인식 2. [^-_]@[^-_] - 위의 검사식을 만족했고, 만족하지 못하는 문자가 나오면 다음 식으로 넘어가서 검사함 - 아이디 다음은 골뱅이.. ▸JAVA/기본 문법 2019. 12. 10. 정규표현식 (메타문자와 주의사항) [1/2] [ 정규표현식(Regular Expression - regex) ] 문자열을 찾기 위한 조건을 문자열로 표현한 것 특정 패턴의 문자열을 찾거나, 문자열이 패턴에 맞는지 검사할 때 사용 패턴 검사는 java.util.regex 패키지의 클래스들을 이용함 메소드 매개변수에 "regex"라고 써져 있는 것은 정규표현식을 매개변수로 받는다는 의미 정규표현식은 특정 패턴을 가진 문자열을 추출하거나, 이메일 주소를 입력할 때와 같이 특정 패턴에 맞게 문자열이 작성됐는지 검사할 때 사용됩니다. 아래는 정규표현식으로 문자열을 검색하는 결과를 시각화해서 보여주는 사이트 링크입니다. 검색식을 테스트해볼 때 유용합니다. https://regex101.com/ [ 정규표현식의 메타 문자 ] 특정 문자의 패턴을 표현하기 위한.. ▸JAVA/기본 문법 2019. 12. 10. 래퍼 클래스 (Wrapper Class) [ 래퍼 클래스 (Wrapper Class) ] 원시타입 변수를 객체화 시켜줌 문자열을 원시타입 변수로 바꿔서 저장해주는 메소드 등 해당 타입에 대한 여러 메소드 제공 원시타입 8개만큼 래퍼 클래스 8개가 존재 ※ 원시(primitive) 타입 (8가지) 1. 논리타입 : boolean 2. 정수타입 : byte, short, int, long 3. 실수타입 : float, double 4. 문자타입 : char 원시타입은 데이터 저장의 기본 단위입니다. 그리고 원시타입이 아닌 모든 타입의 변수는 객체(인스턴스)의 주소를 가진 변수(참조변수)입니다. 따라서 저장된 데이터를 바꿀 수 있는 단위는 오직 원시타입뿐이며, 나머지는 데이터가 저장된 위치를 가리키는 메모리 주소를 담은 변수입니다. 원시타입을 필.. ▸JAVA/기본 문법 2019. 12. 10. 이전 1 2 3 4 5 6 7 다음 💲 추천 글 반응형