반응형

contains 자바 String 메서드 


자바 String contains() 메소드는 String 값에서 특정 순서를 검색합니다.

정의 : boolean contains(charSequence s)

charSequence 지정된 문자열 s 이 포함되어 있는지 확인하여 boolean 값을 반환 합니다.


String str = "test contains method example";

boolean  containValue = str.contain("con");

if( containValue ) {

  system.out.println("str 문자열내에 con 문자열이 포함되어 있다" )

}else{

  ...

}

str.contain("con") 는 true를 반환한다. 


또는 indexOf 메소드를 사용해서 문자열을 검증체크 하는데 자주 사용된다.

실제로 indexOf 메소드는 문자열 위치를 찾는 메소드 이지만 

찾고자 하는 문자열이 포함 되어 있는지 여부를 체크 할때 많이 쓰여지는 것을 볼수 있다.


String str = "test contains method example";

int indexOfValue = str.indexOf("con");

system.out.println("indexOfValue 값은 : " + indexOfValue + " 이다".);


여기에서 실제 indexOfValue 반환값은 정수값 6 이 반환 될 것이다. 

단어를 찾을 때 첫글자의 위치를 반환 한다.

만일 문자열에 찾는 값이 없다면 반환 되는 값은 -1 이다. 



반응형
반응형

Date Class getTime() 와 SimpleDateFormat을 통한 String 날짜 시간 비교 방법

감사합니다 고맙습니다 운이 좋습니다.


개발을 하다보면 시간을 비교 해야 하는 경우가 많이 있습니다. 

String 형태의 지정된 날짜와 현재 또는 특정일과 비교를 해야 하는 경우에 getTime() 을 사용하게 됩니다. 

getTime()은 import java.util.Date 를 선언하고 사용하면 됩니다. 

String 일시(날짜+시간)를 서로 비교할때 SimpleDateFormat을 사용해서 동일한 형식으로 변경하여 쉽게 비교 할수 있습니다. 

예를 들어 현재일시가 세일기간 사이에 있는지 확인을 방법은 다음과 같습니다. 


String saleStartStr = "2018.09.28 00:30"; //세일 시작 일시

String saleEndStr = "2018.09.30 23:30"; //세일 종료 일시

Date nowDayTime = new Date();


SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm"); // String 날짜 형식을 정의 합니다. 

String nowDayTimeStr = sdf.format(nowDayTime);  // 현재일시를 같은 형식으로 파싱합니다.

Date saleStart = sdf.parse(saleStartStr); // 시간으로 변경을 합니다. 

Date saleEnd = sdf.parse(saleEndStr); // 시간으로 변경을 합니다.

Date nowDayTimeFormat = sdf.parse(nowDayTimeStr); // 시간으로 변경을 합니다.


// 이제 비교를 진행 합니니다. 

// Date 형식으로 값을 변경한 것은 getTime() 메소드를 사용하기 위해서 입니다. 


if(saleStart.getTime() > nowDayTimeFormat.getTime()){

System.out.println("현재는 세일 시작 전 입니다.");

}

// nowDayTimeFormat.getTime() 값이 작으면 시작일보다 앞에 있다는 이야기 입니다. 

// 날짜를 비교할때 실수를 많이 하는 부분이기 때문에 주의가 필요합니다. 


if(saleStart.getTime() < nowDayTimeFormat.getTime(){

System.out.println("현재는 세일 시작 후 입니다.");

}

// 현재 시간을 분단위 까지 정의 하였기 때문에 두 값이 같은 경우는 제외 하겠습니다. 

// 동일하게 종료 시간도 다음과 같이 확인을 할 수 있습니다. 


if(saleEnd.getTime() > nowDayTimeFormat.getTime()){

System.out.println("현재는 세일 종료 전 입니다.");

}

if(saleEnd.getTime() < nowDayTimeFormat.getTime()){

System.out.println("현재는 세일 종료 후 입니다.");

}

// 다음은 세일 기간 중인지 아닌지를 알아보겠습니다. 


if(saleStart.getTime() <= nowDayTimeFormat.getTime() && saleEnd.getTime() >= nowDayTimeFormat.getTime()){

System.out.println("현재는 세일기간 중 입니다.");

}else{

System.out.println("현재는 세일기간이 아닙니다.");

}


// 조건을 변경하여 다음과 같이 조건문을 사용 할 수도 있습니다. 


if(saleStart.getTime() > nowDayTimeFormat.getTime() && saleEnd.getTime() < nowDayTimeFormat.getTime()){

System.out.println("현재는 세일기간이 아닙니다.");

}else{

System.out.println("현재는 세일기간중 입니다.");

}


// 그럼 getTime() 으로 비교가 가능한 이유는 날짜date를 long형 숫자 값으로 변경하기 때문입니다. 

// 여기서는 현재 날짜를 new Date()를 사용해서 구했지만 

// 요즘은 Calendar 를 사용해서 많이 구합니다. 

// Calendar 를 사용하면 다음과 같습니다. 

// 선언된 nowDayTime.getTime() 을 바로 사용해도 되지만 같은 형식으로 변경한 후에 사용한것으로 구성했습니다. 

String saleStartStr = "2018.09.28 00:30";

String saleEndStr = "2018.09.30 23:30";

Calendar nowDayTime = Calendar.getInstance(); // Calendar 를 이용해서 현재일시를 구합니다. 


SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm");  

String nowDayTimeStr = sdf.format(nowDayTime);

Date saleStart = sdf.parse(saleStartStr);

Date saleEnd = sdf.parse(saleEndStr);

Date nowDayTimeFormat = sdf.parse(nowDayTimeStr);


if(saleStart.getTime() > nowDayTimeFormat.getTime()){

System.out.println("현재는 세일 시작 전 입니다.");

}


if(saleStart.getTime() < nowDayTimeFormat.getTime(){

System.out.println("현재는 세일 시작 후 입니다.");

}


if(saleEnd.getTime() > nowDayTimeFormat.getTime()){

System.out.println("현재는 세일 종료 전 입니다.");

}

if(saleEnd.getTime() < nowDayTimeFormat.getTime()){

System.out.println("현재는 세일 종료 후 입니다.");

}


if(saleStart.getTime() <= nowDayTimeFormat.getTime() && saleEnd.getTime() >= nowDayTimeFormat.getTime()){

System.out.println("현재는 세일기간 중 입니다.");

}else{

System.out.println("현재는 세일기간이 아닙니다.");

}


if(saleStart.getTime() > nowDayTimeFormat.getTime() && saleEnd.getTime() < nowDayTimeFormat.getTime()){

System.out.println("현재는 세일기간이 아닙니다.");

}else{

System.out.println("현재는 세일기간중 입니다.");

}


 

반응형
반응형

Array constants can only be used in initializers

배열 상수는 초기화에 사용할 수 있습니다.

[배열 선언]

String[] arr = new String [3];  //배열 선언

arr = {"XX", "YY, "ZZ"};         //배열 초기값 

일반적으로 자바에서 선언 하는 방식입니다. 

String[] arry = {"XX", "YY, "ZZ"}; 

이 방식은 자바 표준 선언 방식이 아닙니다. 


이 코드는 다른 언어 (C언어) 등을 사용하는 사람들을 위해 호환성을 살린 부분 이라고 합니다. 

자바는 C언어처럼 포인터를 직접 사용하지 않기 때문에 객체 선언 new 를 사용하여 동적 메모리 할당 영역에 메모리를 잡는 방법을 사용합니다.

[정규식]

String[] arry = new String []{"XX", "YY", "ZZ"};

위와 같이 선언이 정규식 코드 방식입니다. 


String[] arry = {"XX", "YY, "ZZ"};  식이 비정규식인지를 확인 해 볼수 있는 코드 구분을 예로 들어 보겠습니다. 

IF구문을 이용해서 확인해 볼수 있습니다. 

int ifvalue = 1;

String[] arry = null;

if ( ifvalue ==0) { 

  arry = {"XX", "YY, "ZZ"}; 

}else{

 arry = {"XX1", "YY1, "ZZ1"}; 

}

이화 같이 선언을 해도 에러가 없을 것 같지만 바로 빨간 줄이 들어옵니다. 

요즘은 좋은 툴들이 많아서 이클립스 등의 툴로 위 와 같이 코드를 쓰면 바로 오류인걸 확인 할 수 있습니다. 


위코드는 다음과 같이 수정을 하면 됩니다.

int ifvalue = 1;

String[] arry = null;

if ( ifvalue ==0) { 

  arry = new String []{"XX", "YY, "ZZ"}; 

}else{

 arry = new String []{"XX1", "YY1, "ZZ1"}; 

}

new String[] 구분을 넣어 주면 바로 코드를 정상으로 인식합니다. 

이 간단한 코드로 어떤 표현이 정규식인지 바로 알 수 있습니다. 


반응형
반응형

[자바] 설치된 자바(java) bit 확인 방법 32bit/64bit

어떤 상황에 어떤 버전의 자바가 설치 되어 있는지 확인 해야 하는 경우가 

발생한다. 

또한 룰 등이 바뀌면서 java 설치 등을 서버 담당자가 하는 경우가 빈번히 일어

나기 때문에 확인할 방법이 필요해서 적는다. 


64bit 자바 버전을 확인하는 명령어

1. bin폴더 java.exe 파일이 있는 위치로 이동한다. (윈도우 경우)

  리눅스의 경우에는 which java 명령을 사용하거나 하면 찾을 수 있다. 

2. 버전 확인용 아래 명령을 실행 한다.

   java -d64 -version (윈도우/리눅스 공통)

 실행 후 64 비트 인경우 다음과 같은 메세지가 나온다. 

-----------------------------------------------------------------------------

 java version "1.7.0_75" (버전숫자는 다르게 나올수 있다.)

 OpenJDK Runtime Environment (IcedTea6 1.10.4) (rhel-1.24.1.10.4.el5-x86_64)

 OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

 ---------------------------------------------------------------------------

위와 같이 나올경우 리눅스에서 64비트를 나타낸다. 

32비트 인경우는 다음과 같은 메세지가 나온다. 

------------------------------------------------------------------------------

Error: This Java instance does not support a 64-bit JVM.

Please install the desired version.

-----------------------------------------------------------------------------

에러 메세지가 나올경우 32비트로 설치 되어 있는것이다. 



반응형

+ Recent posts