본문 바로가기

분류 전체보기74

[Java] 배열 내 요소 중복여부 체크 1. Set public static void main(String[] args) { List list = Arrays.asList(1,2,3,4,4,5,5,6); Set set = new HashSet(list); System.out.println(list.size()); System.out.println(set.size()); if( list.size() != set.size() ) { System.out.println("배열 내 중복 요소 존재"); } } Set은 중복을 허용하지 않는 자료구조이다. 리스트를 Set으로 변환한 후 두 객체의 사이즈를 비교하여 사이즈가 일치하지 않는다면 리스트 내 중복 요소가 존재하고 있는 것입니다. 2. Stream.distinct() public static vo.. 2022. 4. 26.
[Java] 배열에 특정 값 존재(포함)여부 체크 1. for문 - 반복문을 통해 배열의 요소를 순회, 요소와 key값을 하나씩 비교하며 key값과 일치하는 값이 존재하는지 확인한다. public void solutionFor() { int[] lottos = {44, 1, 0, 0, 31, 25}; int[] win_nums = {31, 10, 45, 1, 6, 19}; int prize_count = 0; for( int lotto : lottos ) { for( int win_num : win_nums ) { if( lotto == win_num ) { prize_count++; break; } } } System.out.println(Math.min(7-prize_count, 6)); } 2. binarySearch() - 이진탐색 메서드를 사용.. 2022. 3. 19.
[Java] 정규식(Regular Expression) 1. 대표적인 패턴 패턴 의미 x 문자 x xyz 문자 xyz [xyz] x,y,z 중 하나의 문자 [a-z] a~z 중 하나의 문자 [^xyz] x,y,z가 아닌 하나의 문자 [^a-z] a~z가 아닌 하나의 문자 abc|xyz 문자열 abc 또는 xyz {숫자} 반복 횟수 ^x 시작문자 x x$ 종료문자 x . 하나의 문자 x* 0개이상 계속되는 x \ 다음에 오는 문자를 이스케이프 처리 \d 숫자 0~9 \D 숫자가 아닌 문자 = [^0-9] \W 영문, 숫자, 언더바 = [A-za-zo-9_] \s 공백문자(스페이스, 탭, 줄바꿈 등) \S 공백문자 이외의 문자 = [^\s] \t 수평탭 \n 줄바꿈 코드 2. 참고사항 1. ^ -> 시작표시(매칭이 처음부터 되어야 함) 2. $ -> 끝표시(문자.. 2022. 3. 19.
[Etc] keytool, OpenSSL, Tomcat 사용 SSL 설정 1. 사전준비 JAVA JDK window용 OpenSSL (다운로드 링크: http://slproweb.com/products/Win32OpenSSL.html) 2. keytool 생성 및 SSL 적용 순서 CMD창에서 아래와 같이 명령어를 실행합니다. a. keystore파일 생성 keytool -genkey -alias tomcat -keyalg RSA -keypass [키 비밀번호] -storepass [스토어 비밀번호] -keystore C:/OpenSSL/bin/.keystore -dname "CN=127.0.0.1, OU=OrgUnit, O=MyCompany, C=KR" 위 명령어에서 가장 중요한 사항은 CN(Common Name) 부분인데 사용할 서버의 ip나 도메인과 꼭 일치해야 합니다... 2021. 11. 26.
[Java] 문자열 시분초 -> 초단위로 변환(timeToSec) 구현 public static int timeToSec(String time) { String[] times = time.split(":"); int hours = Integer.parseInt(times[0]); int minutes = Integer.parseInt(times[1]); int seconds = Integer.parseInt(times[2]); int totalSeconds = (+hours) * 60 * 60 + (+minutes) * 60 + (+seconds); return totalSeconds; }​ 2021. 10. 15.
[Java] 초단위 -> 문자열 시분초로 변환(secToTime) 구현 public static String secToTime(int time) { int hours = (int) Math.floor(times / 3600); int minutes = (int) Math.floor((times - (hours * 3600)) / 60); int seconds = (int) Math.floor((times - (hours * 3600) - (minutes * 60))); String hoursStr = String.valueOf(hours); String minutesStr = String.valueOf(minutes); String secondsStr = String.valueOf(seconds); if (hours < 10) {hoursStr = "0" + hours;} .. 2021. 10. 15.
[Java] 이모티콘(Emoji) 처리(EmojiManager, EmojiParser 클래스 사용) 1. emoji-java maven 설정 추가 참고사항: 문자열에 이모티콘이 포함되어 있는지 확인하는 메소드는 5.대 버전에서 제공하는 것 같다. 4.대 버전에서는 해당 메소드가 존재하지 않았다. com.vdurmont emoji-java 5.1.1 해당 클래스에서 제공하는 메소드를 몇 개만 간략하게 정리하겠다. 2. EmojiManager 메소드 종류 getForTag : 주어진 태그에 대한 모든 이모티콘 반환 getForAlias : 별칭에 대한 이모티콘 반환 getAll : 모든 이모티콘 반환 isEmoji : 문자열이 이모티콘인지 확인 containsEmoji : 문자열에 이모티콘이 포함되어 있는지 확인 3. EmojiParser 메소드 종류 parseToUnicode(String) : 모든 별칭.. 2021. 10. 15.
[MySql] Select 하여 Insert 하기 INSERT INTO prod_code ( sort_no , code_no , code_order , code_name , code_type , code_yn ) SELECT 'B' , code_no , code_order , code_name , code_type , code_yn FROM prod_code WHERE sort_no = 'A'; 위와 같이 INSERT문에는 기존 테이블에 존재하는 컬럼 그대로를 정의한다. 그리고 SELECT문에도 기존 테이블에 존재하는 컬럼을 그대로 정의하되 변경되어 저장되기를 원하는 컬럼 자리에 값을 정의한다. 이때 INSERT문에 정의된 컬럼 위치와 SELECT문에 정의된 컬럼 위치가 동일해야 원하는 컬럼에 원하는 값이 정상적으로 추가될 수 있으니 유의하자. WHER.. 2021. 9. 11.
[Java] 특수문자, Entity Code 치환(StringEscapeUtils 클래스 사용) import org.apache.commons.lang3.StringEscapeUtils; public void changeHtml() { // 특수문자를 Entity Code로 치환 String str = "&&&&"; str = StringEscapeUtils.escapeHtml4(str); // Entity Code를 특수문자로 치환 String entityStr = "&&&&"; entityStr = StringEscapeUtils.unescapeHtml4(entityStr); } 🙏 참조 :: https://kudolove.tistory.com/m/1350 https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang.. 2021. 9. 11.