프로그래밍을 하다보면 특정 문자열에서 원하는 문자가 포함되어 있는지 확인해야하는 소스를 넣을때가 종종 있습니다. 문자열을 찾는 방법은 String클래스의 indexOf(), contains(), matches()메소드를 활용하여 찾을 수 있습니다. 다만 그 용도에 따라서 3가지의 메소드가 조금 다릅니다. indexOf( ) ,contains( ),matches( )의 메소드의 사용용도 메소드 사용처 indexOf() 대상 문자열에서 찾고자 하는 문자의 index값을 찾고싶을때 contains() 대상 문자열에서 찾고자 하는 문자열이 포함되어있는지 여부를 알고 싶을때 matches() 대상 문자열에서 정규표현식(숫자, 영문자, 한글)등이 포함되어있는지 여부를 알고 싶을때 indexOf( )을 활용하여 문자..
자바에서 String타입 알파벳의 대문자 혹은 소문자로 통일하고 싶다면 String클래스의 toUpperCase와 toLowerCase를 사용하면됩니다. toUpperCase()와 toLowerCase() 메소드는 모두 정적이므로 Import나 클래스 선언 없이 바로 사용이 가능합니다. 대문자로 변경(toUpperCase) public class toUpperCase { public static void main(String[] args) { String target = "abcdefg"; //대상 문자열 target = target.toUpperCase(); //대문자로 치환 System.out.println(target); //출력 } } toUpperCase()메소드는 문자열을 모두 대문자로 바꾼 ..
자바에서 특정값의 제곱근(루트)을 구하려면 java.lang.Math 클래스의 sqrt()메소드를 사용하면 됩니다. java.lang.Math 클래스는 수학 계산에 사용할 수 있는 메소드를 제공하고 있습니다. Math 클래스가 제공하는 메소드는 모두 정적이므로 Import나 Math클래스 선언 없이 바로 사용이 가능합니다. 제곱근(루트) 구하기 public class Sqrt { public static void main(String[] args) { double result = Math.sqrt(25); //25의 제곱근 System.out.println("25의 제곱근 : "+ result); } } Math.sqrt() 메소드는 입력값과 출력값은 모두 double형이며 Math.sqrt(대상숫자)를..
자바에서 특정값의 제곱을 구하려면 java.lang.Math 클래스의 pow()메소드를 사용하면 됩니다. java.lang.Math 클래스는 수학 계산에 사용할 수 있는 메소드를 제공하고 있습니다. Math 클래스가 제공하는 메소드는 모두 정적이므로 Import나 Math클래스 선언 없이 바로 사용이 가능합니다. 거듭 제곱 구하기 Math.pow() public class Pow { public static void main(String[] args) { double result = Math.pow(5, 2); //5의제곱 System.out.println("5의 제곱은 : "+result); } } >Math.pow() 메소드는 입력값과 출력값은 모두 double형이며 Math.pow(대상숫자,지수)를..
자바에서 난수를 얻어내는 방법은 Random클래스를 활용하는 방법과 Math클래스를 활용하는 방법 2가지가 있습니다. 두 방법의 차이점은 Math.random() 메소드는 0.0에서 1사이의 double 난수를 얻는데만 사용한다면, Random 클래스는 boolean, int, long, float, double 난수를 얻을 수 있습니다. 또 Math.random()은 종자값(seed)가 현재시간으로 고정인 반면 Random클래스는 종자값(seed)을 설정 할 수 있습니다. 종자값은 난수를 만드는 알고리즘에 사용되는 값으로 종자값이 같으면 같은 난수를 얻습니다. Math.random() public class RandomExample { public static void main(String[] args..
정규표현식(Regular Expression)이란 컴퓨터 과학의 정규언어로부터 유래한 것으로 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식언어 입니다. 개발을 하다보면 전화번호, 주민등록번호, 이메일등과 같이 정해져있는 형식이 있고 사용자가 그 형식대로 제대로 입력했는지 검증을 해야하는 경우가 종종 있습니다. 이런 입력값을 정해진 형식에 맞는지 검증해야 할 때에는 정규표현식을 사용하면 쉽게 구현할 수 있습니다. 자주 사용하는 정규 표현식 정규 표현식 설명 ^[0-9]*$ 숫자 ^[a-zA-Z]*$ 영문자 ^[가-힣]*$ 한글 \\w+@\\w+\\.\\w+(\\.\\w+)? E-Mail ^\d{2,3}-\d{3,4}-\d{4}$ 전화번호 ^01(?:0|1|[6-9])-(?:\d{3}|\d{..
대부분의 운영체제는 실행되는 프로그램들에게 유용한 정보를 제공할 목적으로 환경변수를 제공합니다. 환경 변수는 운영체제에서 이름(Name)과 값(value)로 관리되는 문자열 정보이며 운영체제가 설치될 때 기본적인 내용이 설정되지만, 사용자가 직접 설정하거나 응용프로그램이 설치될 때 자동적으로 변경되기도 합니다. 자바에서는 OS의 환경변수의 값을 System.getenv( ) 라는 메서드를 통해서 불러올 수 있습니다. 환경 변수 읽기 System.getenv( ) //String value = Sytstem.getenv(String name); //사용법 System.out.println("전체 OS 환경변수 값 : " + System.getenv()); System.out.println("OS 환경변수 ..
시스템 프로퍼티는 JVM이 시작할 때 자동으로 설정되는 시스템 속성값입니다. 시스템 프로퍼티는 키(key)와 값(value)로 구성되어 있으며 운영체제에서 사용되는 파일 경로, 구분자, 운영체제의 종류 및 자바 프로그램을 실행시킨 사용자 아이디 JVM의 버전등이 여기에 속합니다. 시스템 프로퍼티 읽기(getProperty()) 키 설명 키(Key) 값 설명(Value) java.version Java 버전 java.vendor Java 공급자 java.vendor.url Java 공급자 주소 java.home Java가 위치한 디렉토리 java.class.version Java 클래스 버전 java.class.path Java 클래스의 경로 java.ext.dir Ext ClassLoader에 로드할 클..
System 클래스를 이용하면 운영체제의 프로그램 종료, 키보드로부터 입력, 모니터로 출력, 메모리 정리, 현재 시간 읽기, 시스템 프로피티 읽기, 환경 변수 읽기등의 일부 기능을 사용할 수 있습니다. 프로그램 종료(System.exit( )) 강제적으로 JVM을 종료시키고 싶을 때는 System 클래스의 exit() 메소드를 호출하면 됩니다. exit() 메소드는 현재 실행하고 있는 프로세스를 강제 종료시키는 역할을 합니다. exit() 메소드는 int 매개값을 지정하도록 되어 있습니다. 이 값을 종료 상태값이라고 합니다. 일반적으로 정상 종료일 경우 0으로 지정하고 비정상 종료일 경우 0이외의 다른값을 줍니다. System.exit(0); //정상종료 System.exit(1); //비정상종료 Sys..
final의 의미는 최종적이란 뜻을 가지고 있습니다. final 필드는 초기값이 저장되면 최종적인 값이 되어 프로그램 실행 도중에 수정을 할 수 없습니다. final 사용법 final 필드 final int number = 1; //final 타입 필드 [= 초기값]; final 필드는 위와 같이 선언하며 final 필드의 초기값을 줄 수 있는 방법은 딱 두가지 방법밖에 없습니다. 첫번째는 필드 선언시에 주는 방법이 있고, 두번째는 생성자를 통해서 주는 방법이 있습니다. 단순 값이라면 필드 선언시에 주는 것이 가장 간단하지만 복잡한 초기화 코드가 필요하거나 객체 생성 시에 외부 데이터로 초기화를 시켜야한다면 생성자를 통해서 초기값을 부여하는 방법을 써야 합니다. 생성자는 final 필드의 최종 초기화를 ..
정적(Static)이란? 정적(static)은 고정된이란 의미를 가지고 있습니다. Static이라는 키워드를 사용하여 Static변수와 Static메소드를 만들 수 있는데 다른말로 정적필드와 정적 메소드라고도 하며 이 둘을 합쳐 정적 멤버라고 합니다. (클래스 멤버라고도 합니다.) 정적 필드와 정적 메소드는 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 고정된 멤버입니다. 그렇기에 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할때 클래스별로 관리됩니다. 따라서 클래스의 로딩이 끝나는 즉시 바로 사용할 수 있습니다. 정적(Static) 멤버 생성 Static 키워드를 통해 생성된 정적멤버들은 Heap영역이 아닌 Static영역에 할당됩니다. Static 영역에 할당된 메모리는 모든 객체가 공..
People클래스에 Age필드와 setAge( ) 메소드가 다음과 같이 선언되어 있다고 가정해보겠습니다. public class People{ //필드 int age; //메소드 void setAge(int a){ age = a; } } 위와같이 age에 외부의 값을 입력받을 수 있는 setAge( )라는 Setter함수를 선언하였습니다. 위에서는 메서드의 인자 변수이름을 int a라 하였는데 여기서 인자값의 변수를 필드의 이름과 같이 하려면 어떻게 해야할까요? this를 사용하면, 메서드의 인수나 변수에 필드와 같은 이름을 붙여도 그것들을 구분하여 사용할 수 있습니다. this는 주로 생성자와 메소드의 매개변수 이름이 필드와 동일한 경우, 인스턴스 멤버인 필드임을 명시하고자 할때 사용됩니다. publi..
프로그래밍을 하다보면 몇가지의 한정된 데이터들을 가지는 경우가 있습니다. 대표적으로는 "요일"이나 "계절" 같은것이지요 요일은 월,화,수,목,금,토,일 이렇게 7가지밖고 계절도 봄,여름,가을,겨울 4가지 계절로 한정되어 있습니다. 이렇게 이와 같이 한정된 데이터들을 갖는 데이터들은 열거형으로 묶어주면 편합니다. 열거형(Enum) 선언 방법 enum Season { //class 외부에서 선언 봄, 여름, 가을, 겨울 } public class enum_ex { public enum Season { //class 내부에서 선언 봄, 여름, 가을, 겨울 } } enum 키워드는 열거 타입을 선언하기 위한 키워드입니다. 열거 타입(Season)이름을 지정하고 열거 상수(봄,여름,가을,겨울)를 나열하면 됩니다...