Language/Java
-
2023-02-08 1. 방법 방법은 간단하다. soap:Envelope 형태를 가지는 String 객체를 바이트로 변경 > inputStream 담고 이후 MessageFactory를 통해 SOAPMessage를 만들면 된다. import javax.xml.soap.MessageFactory; import javax.xml.soap.SOAPMessage; import java.io.ByteArrayInputStream; import java.io.InputStream; @Test public void requst_responseTest() throws Exception { String requestResponse = "" + " " + ... ... ... " " + ""; InputStream is ..
[Java] String to SoapMessage 하는 방법2023-02-08 1. 방법 방법은 간단하다. soap:Envelope 형태를 가지는 String 객체를 바이트로 변경 > inputStream 담고 이후 MessageFactory를 통해 SOAPMessage를 만들면 된다. import javax.xml.soap.MessageFactory; import javax.xml.soap.SOAPMessage; import java.io.ByteArrayInputStream; import java.io.InputStream; @Test public void requst_responseTest() throws Exception { String requestResponse = "" + " " + ... ... ... " " + ""; InputStream is ..
2023.02.08 -
2023-02-04 1. 방법 Arrays.sort 내부 메소드 compare를 확용하면, 숫자형 문자열 배열을 앞자리 기준으로 정렬할 수 있다. import java.util.Arrays; import java.util.Comparator; public class Test_01 { @Test public void test(){ String[] arr = {"1","1","1","1","1","3","0","5","5","1231","432423","931"}; orderAsc(arr); for (String str: arr ) { System.out.print(str + " / "); } System.out.println(); orderDesc(arr); for (String str: arr ) { S..
[Java] 숫자형 문자열 배열 앞자리 기준 정렬 방법2023-02-04 1. 방법 Arrays.sort 내부 메소드 compare를 확용하면, 숫자형 문자열 배열을 앞자리 기준으로 정렬할 수 있다. import java.util.Arrays; import java.util.Comparator; public class Test_01 { @Test public void test(){ String[] arr = {"1","1","1","1","1","3","0","5","5","1231","432423","931"}; orderAsc(arr); for (String str: arr ) { System.out.print(str + " / "); } System.out.println(); orderDesc(arr); for (String str: arr ) { S..
2023.02.04 -
2023-01-30 1. 방법 아래의 방법은 기존 set에서 비교하고자 하는 set을 빼는 방법이다. 코드는 간단하지만 원본객체가 보존이 되지 않는 문제점이 있다. @Test public void SetTest1(){ Set allNameSet =new HashSet(); allNameSet.add("a"); allNameSet.add("b"); allNameSet.add("c"); allNameSet.add("d"); allNameSet.add("e"); Set NameSet =new HashSet(); NameSet.add("a"); NameSet.add("b"); NameSet.add("c"); allNameSet.removeAll(NameSet); for(String name : allNameSe..
[Java] Set 차집합 구하는 방법 2가지 ( removeAll / Stream )2023-01-30 1. 방법 아래의 방법은 기존 set에서 비교하고자 하는 set을 빼는 방법이다. 코드는 간단하지만 원본객체가 보존이 되지 않는 문제점이 있다. @Test public void SetTest1(){ Set allNameSet =new HashSet(); allNameSet.add("a"); allNameSet.add("b"); allNameSet.add("c"); allNameSet.add("d"); allNameSet.add("e"); Set NameSet =new HashSet(); NameSet.add("a"); NameSet.add("b"); NameSet.add("c"); allNameSet.removeAll(NameSet); for(String name : allNameSe..
2023.01.30 -
2023-01-08 1. 방법 방법은 전달받은 문자열 객체의 길이에 따라 루프를 돌면서 한글일 경우 한글 음절의 시작위치인 0xAC00 차감한 후 아래의 공식을 적용하여 구할 수 있다. (unicode % 28) -> 종성 구하기 (unicode - (unicode % 28))/28) -> 중성 구하기 ((unicode - (unicode % 28))/28)/21 -> 초성 구하기 이후 한글 초성에 대한 인덱스가 리턴이 되는데, 해당 인덱스는 static 배열에 순서대로 자음을 적어두었다. 한글 초성은 순서대로 ㄱ-ㅎ(0 ~ 18) 의 순서를 가진다. import java.util.Optional; static String [] INITIAL_STRING = { "ㄱ", "ㄲ", "ㄴ", "ㄷ", "ㄸ"..
[Java] 자바 한글 초성 추출하는 방법2023-01-08 1. 방법 방법은 전달받은 문자열 객체의 길이에 따라 루프를 돌면서 한글일 경우 한글 음절의 시작위치인 0xAC00 차감한 후 아래의 공식을 적용하여 구할 수 있다. (unicode % 28) -> 종성 구하기 (unicode - (unicode % 28))/28) -> 중성 구하기 ((unicode - (unicode % 28))/28)/21 -> 초성 구하기 이후 한글 초성에 대한 인덱스가 리턴이 되는데, 해당 인덱스는 static 배열에 순서대로 자음을 적어두었다. 한글 초성은 순서대로 ㄱ-ㅎ(0 ~ 18) 의 순서를 가진다. import java.util.Optional; static String [] INITIAL_STRING = { "ㄱ", "ㄲ", "ㄴ", "ㄷ", "ㄸ"..
2023.01.08 -
2022-12-12 1. 방법 apache.commons.text 라이브러리에서 제공하는 LevenshteinDistance를 사용하면 두 문자열 간에 차이를 쉽게 구할 수 있다. 여기서 LevenshteinDistance는 편집 거리 알고리즘이라고 불리며, 두 문자열에 형태적 유사도를 측정하는 방법이다. https://en.wikipedia.org/wiki/Levenshtein_distance Levenshtein distance - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search Computer science metric for string similarity In information theory, l..
[Java] 두 문자열 간에 일치 정도 확인 하기 (Levenshtein)2022-12-12 1. 방법 apache.commons.text 라이브러리에서 제공하는 LevenshteinDistance를 사용하면 두 문자열 간에 차이를 쉽게 구할 수 있다. 여기서 LevenshteinDistance는 편집 거리 알고리즘이라고 불리며, 두 문자열에 형태적 유사도를 측정하는 방법이다. https://en.wikipedia.org/wiki/Levenshtein_distance Levenshtein distance - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search Computer science metric for string similarity In information theory, l..
2022.12.12 -
2022-12-07 1.방법 리스트의 경우 형변환 없이 바로 Collections.frequency 메소드를 사용하여 빈번도를 확인할 수있으며, array의 경우 list 형태로 한번 변환이 필요하다. import java.util.Arrays; import java.util.Collections; import java.util.List; @SpringBootTest public class Test2 { @Test void test123() { Boolean [] checkArr = new Boolean [] {false, false, false}; //배열생성 List checkList = Arrays.asList(checkArr); //배열 리스트변경 //리스트에서의 빈번도 확인 System.out...
[Java] 자바 List/Array에서 특정 값 개수 세기 / 리스트 데이터 빈번도2022-12-07 1.방법 리스트의 경우 형변환 없이 바로 Collections.frequency 메소드를 사용하여 빈번도를 확인할 수있으며, array의 경우 list 형태로 한번 변환이 필요하다. import java.util.Arrays; import java.util.Collections; import java.util.List; @SpringBootTest public class Test2 { @Test void test123() { Boolean [] checkArr = new Boolean [] {false, false, false}; //배열생성 List checkList = Arrays.asList(checkArr); //배열 리스트변경 //리스트에서의 빈번도 확인 System.out...
2022.12.07 -
2022-12-03 1. 방법 방법은 map 안에 있는 값이나 키를 추출해서 리스트 형식으로 변경 후에 정렬하는 방식을 사용하면 손쉽게 hashMap 형태의 자료구조를 정렬해서 확인할 수 있다. import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest public class Test3 { @Test void test1() { HashMap map = new HashMap(); map.put(1, 1); map.put(2, 2);..
[Java] HashMap 값 기준 정렬 및 키 기준 정렬2022-12-03 1. 방법 방법은 map 안에 있는 값이나 키를 추출해서 리스트 형식으로 변경 후에 정렬하는 방식을 사용하면 손쉽게 hashMap 형태의 자료구조를 정렬해서 확인할 수 있다. import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest public class Test3 { @Test void test1() { HashMap map = new HashMap(); map.put(1, 1); map.put(2, 2);..
2022.12.03 -
2022-12-02 1. 방법 LocalTime 에서 제공하는 메서드인 compareTo 를 사용하면 두 LocalTime 변수 중 어는 것이 더 큰지 확인할 수 있다. compareTo 호출 변수가 compareTo 매개변수 보다 작으면 음수 -1을 리턴하고, compareTo 호출 변수가 compareTo 매개변수 보다 크면 양수 1을 리턴한다. import java.time.LocalTime; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class ExceptionTest { @Test void test4(..
[Java] LocalTime 간의 시간 비교 하는 방법2022-12-02 1. 방법 LocalTime 에서 제공하는 메서드인 compareTo 를 사용하면 두 LocalTime 변수 중 어는 것이 더 큰지 확인할 수 있다. compareTo 호출 변수가 compareTo 매개변수 보다 작으면 음수 -1을 리턴하고, compareTo 호출 변수가 compareTo 매개변수 보다 크면 양수 1을 리턴한다. import java.time.LocalTime; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class ExceptionTest { @Test void test4(..
2022.12.02 -
2022-11-30 1. 방법 Java.util.Collections 에서의 max 와 min 메소드를 사용하면 현재 Set에 존재하는 객체중 가장 큰 값과 작은 값을 구할 수 있다. import java.util.Collections; import java.util.HashSet; import java.util.Set; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Test1 { @Test void test1() { Set index = new HashSet(); index.add(1); index.a..
[Java] Set 에서 Max 값과 Min 값 구하는 방법2022-11-30 1. 방법 Java.util.Collections 에서의 max 와 min 메소드를 사용하면 현재 Set에 존재하는 객체중 가장 큰 값과 작은 값을 구할 수 있다. import java.util.Collections; import java.util.HashSet; import java.util.Set; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Test1 { @Test void test1() { Set index = new HashSet(); index.add(1); index.a..
2022.11.30 -
2022-11-29 1. 방법 방법은 ProcessBuilder를 사용하는 방법이다. 유틸 형식으로 분리 후 모듈 형식으로 사용하면 편하게 사용할 수 있다. 매개 변수 dir 은 쉘 스크립트가 위치하는 경로를 나타낸다. shellName(은) 말 그대로 실행시킬 쉘 스크립트의 이름을 나타낸다. 메서드 안에 변수 cdExec를 보면 리눅스 서버에서 매개변수로 주어진 dir로 경로를 옮긴 후 매개변수로 주어진 shellName으로 만들어진 쉘 스크립트를 실행하는 것을 확인할 수 있다. import java.io.BufferedReader; import java.io.InputStreamReader; import org.springframework.stereotype.Component; import lombo..
[Java] 자바 리눅스 서버 쉘 스크립트 실행하는 방법2022-11-29 1. 방법 방법은 ProcessBuilder를 사용하는 방법이다. 유틸 형식으로 분리 후 모듈 형식으로 사용하면 편하게 사용할 수 있다. 매개 변수 dir 은 쉘 스크립트가 위치하는 경로를 나타낸다. shellName(은) 말 그대로 실행시킬 쉘 스크립트의 이름을 나타낸다. 메서드 안에 변수 cdExec를 보면 리눅스 서버에서 매개변수로 주어진 dir로 경로를 옮긴 후 매개변수로 주어진 shellName으로 만들어진 쉘 스크립트를 실행하는 것을 확인할 수 있다. import java.io.BufferedReader; import java.io.InputStreamReader; import org.springframework.stereotype.Component; import lombo..
2022.11.29 -
2022-11-27 1. 방법 아래와 같은 방법을 사용하면 손쉽게 문자열을 아스키 코드 크기순으로 즉 알파벳 순으로 뒤집을 수 있다. 로직의 순서는 우선적으로 주어진 문자열을 char 형태의 배열로 만든후 정렬하고 이후 StringBuilder의 reverse를 사용해 뒤집으면 해당 문자열은 내림차순 순으로 정렬된다. import java.util.Arrays; class Test { public String test1(String s) { String answer = ""; char[] charArr = s.toCharArray(); //배열형태로 변경 Arrays.sort(charArr); //배열 오름차순 정렬 String result = new String(charArr); //문자열 변환 Str..
[Java] 문자열 역순 정렬하는 방법 알아보기2022-11-27 1. 방법 아래와 같은 방법을 사용하면 손쉽게 문자열을 아스키 코드 크기순으로 즉 알파벳 순으로 뒤집을 수 있다. 로직의 순서는 우선적으로 주어진 문자열을 char 형태의 배열로 만든후 정렬하고 이후 StringBuilder의 reverse를 사용해 뒤집으면 해당 문자열은 내림차순 순으로 정렬된다. import java.util.Arrays; class Test { public String test1(String s) { String answer = ""; char[] charArr = s.toCharArray(); //배열형태로 변경 Arrays.sort(charArr); //배열 오름차순 정렬 String result = new String(charArr); //문자열 변환 Str..
2022.11.27 -
2022-11-26 1. 방법 java time 에 존재하는 class 인 DayOfWeek 와 LocalDate를 사용하면 어렵지 않게 정해진 일자의 요일을 구할 수 있습니다. import java.time.DayOfWeek; import java.time.LocalDate; @SpringBootTest public class test2 { @Test void Test2() { String answer = ""; LocalDate date = LocalDate.of(2021, 12, 25); //연 월 일 순으로 적어준다. DayOfWeek dayOfWeek = date.getDayOfWeek(); if(dayOfWeek.getValue() == 1) { answer = "MON"; }else if (..
[Java] 주어진 날짜의 요일을 구하는 방법 DayOfWeek/LocalDate2022-11-26 1. 방법 java time 에 존재하는 class 인 DayOfWeek 와 LocalDate를 사용하면 어렵지 않게 정해진 일자의 요일을 구할 수 있습니다. import java.time.DayOfWeek; import java.time.LocalDate; @SpringBootTest public class test2 { @Test void Test2() { String answer = ""; LocalDate date = LocalDate.of(2021, 12, 25); //연 월 일 순으로 적어준다. DayOfWeek dayOfWeek = date.getDayOfWeek(); if(dayOfWeek.getValue() == 1) { answer = "MON"; }else if (..
2022.11.26 -
2022-11-21 1. 방법 import java.util.Arrays; @Test void test14() { int[] arrInt = { 1, 1, 6, 6 }; Integer[] arr = Arrays.stream( arrInt ).boxed().toArray( Integer[]::new ); } 단순 int 배열은 wrapper로 감싸지지 않아 형변환이나 제네릭 표현애서 어려운 경우가 많다. 이럴 경우 위와 같은 방법을 사용하면 손쉽게 int [] 을 Integer[] 형태로 변경하여 사용할 수 있다. 메인 이미지 출처 : Photo by Philip Oroni on Unsplash
[Java] int [] 을 Integer []로 바꾸는 방법2022-11-21 1. 방법 import java.util.Arrays; @Test void test14() { int[] arrInt = { 1, 1, 6, 6 }; Integer[] arr = Arrays.stream( arrInt ).boxed().toArray( Integer[]::new ); } 단순 int 배열은 wrapper로 감싸지지 않아 형변환이나 제네릭 표현애서 어려운 경우가 많다. 이럴 경우 위와 같은 방법을 사용하면 손쉽게 int [] 을 Integer[] 형태로 변경하여 사용할 수 있다. 메인 이미지 출처 : Photo by Philip Oroni on Unsplash
2022.11.21 -
2022-10-20 1. 방법 String 에서 제공하는 startsWith 메소드를 사용하는 것이다. 리스트를 탐색하면서 찾고자 하는 문자열이 포함된 위치를 출력할 수 있다. @Test void test100() { String[] strArr = {"Ope", "test", "2313ss", "wewWss", "0999s", "LL231", "abcsdsd"}; String searchText = "abc"; for(int i = 0; i " + i); } } } 메인 이미지 출처 : Photo by Zac Wolff on Unspl..
[Java] 특정 접두사로 시작하는 String 찾는 방법2022-10-20 1. 방법 String 에서 제공하는 startsWith 메소드를 사용하는 것이다. 리스트를 탐색하면서 찾고자 하는 문자열이 포함된 위치를 출력할 수 있다. @Test void test100() { String[] strArr = {"Ope", "test", "2313ss", "wewWss", "0999s", "LL231", "abcsdsd"}; String searchText = "abc"; for(int i = 0; i " + i); } } } 메인 이미지 출처 : Photo by Zac Wolff on Unspl..
2022.10.20 -
2022-10-18 1. 방법 일일이 변환하는 것은 비효율적이기 때문에 관련 라이브러리를 사용한다. 사용 라이브러리는 jaskson 의 core 에 존재하는 JsonStringEncoder 를 사용하면 되며, return 타입이 char[] 와 같은 배열 형태이기 때문에 String 형태로 바꾸기 위해서는 형변환 과정을 거쳐야 한다. // import com.fasterxml.jackson.core.io.JsonStringEncoder; // 위는 라이브러리 관련 import 정보 //. . . . . . public String JsonToStringFilter(String data) { JsonStringEncoder encoder = JsonStringEncoder.getInstance(); //제..
[Java] jsonobject 에 escape character 적용하는 방법2022-10-18 1. 방법 일일이 변환하는 것은 비효율적이기 때문에 관련 라이브러리를 사용한다. 사용 라이브러리는 jaskson 의 core 에 존재하는 JsonStringEncoder 를 사용하면 되며, return 타입이 char[] 와 같은 배열 형태이기 때문에 String 형태로 바꾸기 위해서는 형변환 과정을 거쳐야 한다. // import com.fasterxml.jackson.core.io.JsonStringEncoder; // 위는 라이브러리 관련 import 정보 //. . . . . . public String JsonToStringFilter(String data) { JsonStringEncoder encoder = JsonStringEncoder.getInstance(); //제..
2022.10.18 -
2022-10-06 1. 방법 [[1, 2, 3], [2, 1], [1, 2, 4, 3], [2]] 이와 같은 이중 배열이 있다고 가정해보자. 이를 내부의 배열의 길이의 순서대로 정렬하면, [[2], [2, 1], [1, 2, 3], [1, 2, 4, 3]] 이런 모양이 나올 것이다. 방법을 알아보자. import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; @Test public void test17() { //오름차순 정렬 Comparator c = new Comparator() { public int compare(L..
[Java] 다중 (Array)List 길이로 정렬하는 방법2022-10-06 1. 방법 [[1, 2, 3], [2, 1], [1, 2, 4, 3], [2]] 이와 같은 이중 배열이 있다고 가정해보자. 이를 내부의 배열의 길이의 순서대로 정렬하면, [[2], [2, 1], [1, 2, 3], [1, 2, 4, 3]] 이런 모양이 나올 것이다. 방법을 알아보자. import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; @Test public void test17() { //오름차순 정렬 Comparator c = new Comparator() { public int compare(L..
2022.10.06 -
2022-10-03 1. 방법 @Test public void test8() { String s = "hello"; for(int i = 0; i < s.length(); i++){ StringBuilder sb = new StringBuilder(s); String subString = sb.substring(0, i); sb.delete(0,i); sb.append(subString); System.out.println(sb.toString()); } } //출력결과 //hello //elloh //llohe //lohel //ohell 위와 같은 방법을 사용하면 처음에 위치한 char를 맨뒤로 보내면서 해당 문자열을 회전 시킬 수 있다. 사실 로직은 한번씩 StringBuilder 를 초기화 시키면..
[Java] 자바 문자열 회전시키는 방법 알아보기.2022-10-03 1. 방법 @Test public void test8() { String s = "hello"; for(int i = 0; i < s.length(); i++){ StringBuilder sb = new StringBuilder(s); String subString = sb.substring(0, i); sb.delete(0,i); sb.append(subString); System.out.println(sb.toString()); } } //출력결과 //hello //elloh //llohe //lohel //ohell 위와 같은 방법을 사용하면 처음에 위치한 char를 맨뒤로 보내면서 해당 문자열을 회전 시킬 수 있다. 사실 로직은 한번씩 StringBuilder 를 초기화 시키면..
2022.10.03 -
2022-09-24 1. 방법 사실 직접 구현할 필요 없이 아래와 같은 Integer.bitCount(i) 라는 메소드를 사용하면 빠르고 쉽게 구할 수 있다. int num = 12345; int cntBit = Integer.bitCount(num); System.out.println(cntBit); //6 메인 이미지 출처 : Photo by Geio Tischler on Unsplash
[Java] 이진수의 비트 수(1) 빠르게 세는 방법 알아보기2022-09-24 1. 방법 사실 직접 구현할 필요 없이 아래와 같은 Integer.bitCount(i) 라는 메소드를 사용하면 빠르고 쉽게 구할 수 있다. int num = 12345; int cntBit = Integer.bitCount(num); System.out.println(cntBit); //6 메인 이미지 출처 : Photo by Geio Tischler on Unsplash
2022.09.24 -
2022-09-23 1. 방법 //String 에서 a 라는 문자의 개수를 세는 방법 String abc = "aaaaabbbbcccc"; int aCount = abc.length() - abc.replace("a", "").length(); 위와 같은 방식으로 " 전체 문자열 길이 - (전체 문자열에서 a를 제외한 문자열의 길이 ) " 와 같은 공식을 사용하면 해당 문자열에서 자신이 찾고자 하는 문자의 개수를 확인할 수 있다. 메인 이미지 출처 : Photo by Slashio Photography on Unsplash
[Java] 자바 String 특정 문자열 개수 빠르게 확인하는 방법2022-09-23 1. 방법 //String 에서 a 라는 문자의 개수를 세는 방법 String abc = "aaaaabbbbcccc"; int aCount = abc.length() - abc.replace("a", "").length(); 위와 같은 방식으로 " 전체 문자열 길이 - (전체 문자열에서 a를 제외한 문자열의 길이 ) " 와 같은 공식을 사용하면 해당 문자열에서 자신이 찾고자 하는 문자의 개수를 확인할 수 있다. 메인 이미지 출처 : Photo by Slashio Photography on Unsplash
2022.09.23 -
2022-09-02 단순 메일 발송이 아닌 첨부파일 그중에서 엑셀 파일과 함께 발송하는 방법을 알아보자. 우선적으로 구현 class는 총 3개이며, 메일 계정 인증 유틸 / 메일 발송 유틸 / 실제 메일을 발송하는 컨트롤러 이렇게 구성했다. 0. 라이브러리 자신의 build.gradle 아래 2가지의 라이브러리를 추가해야 한다. // 엑셀관련 workbook 라이브러리 // https://mvnrepository.com/artifact/org.apache.poi/poi implementation group: 'org.apache.poi', name: 'poi', version: '5.2.2' // https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml ..
[Java] 메일에 엑셀파일 담아서 발송하는 방법[메일 첨부 파일/gmail]2022-09-02 단순 메일 발송이 아닌 첨부파일 그중에서 엑셀 파일과 함께 발송하는 방법을 알아보자. 우선적으로 구현 class는 총 3개이며, 메일 계정 인증 유틸 / 메일 발송 유틸 / 실제 메일을 발송하는 컨트롤러 이렇게 구성했다. 0. 라이브러리 자신의 build.gradle 아래 2가지의 라이브러리를 추가해야 한다. // 엑셀관련 workbook 라이브러리 // https://mvnrepository.com/artifact/org.apache.poi/poi implementation group: 'org.apache.poi', name: 'poi', version: '5.2.2' // https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml ..
2022.09.02