개발/JAVA 20

windows에서 JAVA 환경변수 설정하기

이클립스 프로그램을 사용할 때(자바 개발 시) JAVA가 설치된 위치를 찾게 해주기 위해 환경변수 설정을 해야한다. 제어판 검색 제어판 > 시스템 및 보안 클릭 제어판 > 시스템 및 보안 > 시스템 클릭 제어판 > 시스템 및 보안 > 시스템 > 고급 시스템 설정 클릭 고급 > 환경 변수 클릭 아래쪽 새로 만들기 클릭 jdk가 설치된 위치로 들어간 후 위에있는 경로 부분을 클릭한다. jdk 경로를 복사한다. 환경 변수 > 새로 만들기 > 새 사용자 변수 (변수 이름은 대문자로!!!) 변수 이름: JAVA_HOME 변수 값: 복사해둔 jdk 경로 확인 다시 새로 만들기 > 새 사용자 변수 (변수 이름은 대문자로!!!) 변수 이름: CLASSPATH 변수 값: %JAVA_HOME%\lib 확인 시스템 변수 중..

개발/JAVA 2020.11.24

Java String split 또는 replace 할 때 .(Dot, 점) 안되는 현상

내가 split 하려고 했던 문자열이 아래와 같다고 하면, String text = "aaa.111"; . (dot)로 split을 하려고 했다. String[] result = text.split("."); System.out.println(result.length); 결과는 몇일까? .을 기준으로 aaa와 111로 나눠지기 때문에 2가 나와야 정상이지만, 0이었다. 이유는 .(dot)는 정규식 예약어이기 때문이다. \n(개행문자)를 제외한 모든 문자를 의미한다. 따라서, String[] result = text.split("."); 이 문법은 모든 문자를 각각 다 split 하면서 하나씩 다 없어져버린 것이다. 그래서 원하는대로 하기 위해서는 \\. 으로 수행해야한다. \

개발/JAVA 2016.09.29

trim()으로 걸러내지 못하는 공백문자 정규식으로 걸러내기

우리 서비스에서 공백이름으로는 저장할 수 없도록 trim()으로 막는 곳이 있는데 클라이언트는 물론 서버에서도 걸러지지 못하고 넘어가서 DB까지 저장되어버린 공백문자를 발견했다. 그 공백 문자는 바로 유니코드(U+00A0) No-Break space였다. HTML에서 공백쓸 때 쓰던 가 이 공백문자였던거구만.. ㅋㅋ java에서 그 문자가 정말 trim으로 걸러지지 않는지 테스트를 해보자. 먼저 유니코드(U+00A0)을 UTF-8로 하면 무엇인지 본다. (http://www.utf8-chartable.de/) c2 a0이다. String utf8char = "c2 a0"; // no-break space String[] strNumbers = utf8char.split(" "); byte[] rawCha..

개발/JAVA 2016.07.22

Java의 Integer, int 숫자 비교의 주의사항

예전에 프로그램에 버그가 있었고 원인을 한참을 못찾은적이 있었다.숫자 비교하다 생긴 문제였고, 무심코 코딩하다 틀리고 삽질할 수 있는 부분이라 블로그에 남겨본다.ㅎㅎ 아래는 숫자를 저장하는 3가지 방법이다. int a = 1;Integer b = 1;Integer c = new Integer(1); if (a == 1) => true if (b == 1) => trueif (c == 1) => true a, b, c 모두 숫자 1인지 비교해보면 결과는 true이다. 그럼 변수끼리 비교해보겠음 1) int VS Integer int a = 1;Integer b = 1; if (a == b) => true 2) int VS Integer int a = 1;Integer c = new Integer(1); i..

개발/JAVA 2016.03.30

구아바(Guava)를 이용하여 List의 특정값 추출해서 새로운 List 만들기

구글의 구아바(Guava)를 이용하면 Collection을 간편하게 처리할 수 있다. 앞에 글에서는 리스트에 있는 값을 특정 Precate로 필터링 하는 법을 설명했는데, 이번에는 필터링이라기 보다는, 어떤 리스트를 어떤 새로운 객체의 리스트로 변환한다고나 할까? 1. List에 들어있는 어떤 값을 추출해서 새로운 List로 만들기 아래는 List 리스트를 유저의 숫자 아이디만 뽑아서 List로 만드는 예제이다. List users = ... List userIds = Lists.transform(users, new Function() { @Override public Integer apply(User user) { return user.getUserId(); } }); 이 기능의 핵심 메소드는 바로 구..

개발/JAVA 2016.03.25

구아바(Guava) Iterables.filter를 사용해서 리스트 필터링 하기

구글에서 제공하는 라이브러리인 구아바(Guava)를 사용하면 java의 Collection을 간편하게 활용할 수 있다. 이번 글에서 설명할 것은 리스트의 값을 특정 조건으로 필터링 하는 예제이다. 1. List에서 null값 모두 제거하기 List users = Lists.newArrayList(Iterables.filter(users, Predicates.notNull())); 여러 메소드가 있으니 맨 안쪽부터 뜯어서 보자. 1-1 Iterables.filter(users, Predicates.notNull()) 구글에서 제공하는 Iterables의 filter 메소드의 파라미터는 unfiltered, predicate 라고 나와있다. Iterables.filter(필터링할 리스트, 필터 조건) 역시 ..

개발/JAVA 2016.03.25

server to server에서 DATE 전송. jsp에서 포멧에 맞춰 출력하기.

아.. 블로그에 엄청 오랜만에 글쓰네 ㅋㅋ 쓸건 많았는데. 어쨌든 이상한 일이 일어나서 써본다. 내가 하려던건, 1. 어드민 서버 -> API 서버로 호출을 한다. 2. 날짜(Date) 정보를 API 서버로부터 받아온다. 3. Admin의 jsp에 날짜 정보를 뿌린다. 이상한 점은 API에서 등록날짜를 어드민으로 보내줄 때 등록날짜를 Date로 보내줬고, 받는 어드민쪽에서도 Date로 받았는데. 디버깅해보면 값이 잘들어있고 jsp에서 출력하면... 타임스템프값으로 출력된다. {createdAt=1413339994000}

개발/JAVA 2014.10.15

[jUnit] class not found 에러

jUnit으로 테스트 하려고 하는데,분명히 있는 클래스를 자꾸 없다고 하면서 에러가 났다. 구글링 해본 결과..아래같이 하면 된다. 1. 프로젝트 우클릭- build path - configure Build Path 2. Order and Export 탭 선택 후 Maven Dependencies와 JRE.. 순서를 up, down을 이용해 순서를 바꾼다. 메이븐빌드만 새로 하고 나면 계속 안되서 저 순서를 계속 바꿔주니까 되었다.(테스트 전에는 빌드를 안해야겠음)

개발/JAVA 2014.05.15

Hash Set - Custom class 중복 제거하기

Java의 콜렉션 중 Set은 중복된 값이 들어가지 않는다.어릴적 배웠었던 수학에서의 집합의 특성과 같다.'여러대상의 모임이며, 순서가 없고 중복된 값이 없다' Set의 구현체 중 HashSet을 이용해보겠다.아래처럼 사용한다. Test.java public void 해시셋테스트() { Set set = new HashSet(); set.add(1); set.add(2); set.add(2); System.out.println(set); } 결과 >> [1, 2] 결과를 보면, 중복된 값을 제거해서 저장해준다. 그러나, Wrapper class(Integer, String, Long...)가 아닌내가 만든 Custom class로 하면, 중복된 데이터가 들어가버린다.아래의 예를 한번 보자. CreateO..

개발/JAVA 2014.02.16

배열에 있는 값을 특정 구분자로 스트링으로 만들기

어떤 스트링 배열에 비어있는 값이 들어있기도 하고,값이 들어있기도 한 상태다. {"cat", "", "", "dog", "horse", "", "lion"} 값이 들어있는 것들을 스트링으로 만들고 싶다. 아래처럼. cat, dog, horse, lion 이럴 때 쉽게 만들어주는 메소드가 있다!바로 StringUtils의 join 메소드. StringUtils 같은 유틸 클래스를 사용하기 위해서는 라이브러리가 필요한데,maven을 쓰고 있다면 메이븐 검색에서(http://mvnrepository.com/search.html) commons lang을 검색해서 최근 라이브러리의 디펜던시를 복사해서 쓴다. commons-langcommons-lang2.6 예제 코드 >>String[] animal = {"ca..

개발/JAVA 2014.02.09