본문 바로가기
반응형

Java26

[Java] 파일 Zip파일로 압축하여 업로드(암호설정) 구현(zip4j 사용) 1. maven dependency 설정 net.lingala.zip4j zip4j 1.3.3 zip4j는 람다표현식을 포함하고 있다. 람다표현식은 java 1.8에서 구현되기 때문에 개발환경을 1.8로 설정해주어야 한다. 2. Zipper.java import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.zip.ZipException; import net.lingala.zip4j.core.ZipFile; import net.lingala.zip4j.model.ZipParameters; import net.lingala.zip4j.util.Zip4jConstants; public class Zipper .. 2022. 4. 26.
[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.
[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.
[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.
반응형