본문 바로가기
반응형

개발하는고양이196

[자바] MessageFormat 정해진 양식에 맞춰 출력해야 될 때 MessageFormat을 사용하면 편리하다. MessageFormat의 parse를 이용하면 지정된 양식에서 필요한 데이터만 손쉽게 추출해낼 수 있다. import java.text.*; public class MessageFormatEx { public static void main(String[] args) { String msg = "{0}님, 안녕하세요. {1}에 방문해주셔서 감사합니다."; Object[] objArgs = {"방문자", "개발하는고양이 블로그"}; System.out.println(MessageFormat.format(msg, objArgs)); } } 결과 방문자님, 안녕하세요. 개발하는고양이 블로그에 방문해주셔서 감사합니다. {숫자} 로.. 2023. 2. 2.
[자바] ChoiceFormat 특정 범위에 속하는 값을 문자열로 변환해준다. import java.text.ChoiceFormat; public class ChiceFormatEx1 { public static void main(String[] args) { double[] limits = {50, 60, 70, 80, 90}; //낮은값->큰값, 오름차순 String[] grades = {"F", "D", "C", "B", "A"}; //경계값에 정의된 범위의 개수와 일치해야 됨 int[] scores = {100, 60, 45, 95, 88, 70, 52, 60, 30, 70}; ChoiceFormat form = new ChoiceFormat(limits, grades); for(int score : scores) { Syste.. 2023. 2. 2.
[자바] SimpleDateFormat Date와 Calendar, 두 개 만으로는 날짜 데이터를 원하는 형태로 다양하게 출력하는 것이 어려운데 SimpleDataFormat을 사용하면 간단히 해결 할 수 있다. (Date, Calendar 참고 : https://devmango.tistory.com/145) DateFormat은 추상클래스로 SimpleDateFormat의 조상이다. DateFormat은 추상클래스이므로 인스턴스를 생성하기 위해서는 getDateInstance()와 같은 static 메서드를 이용해야 한다. getDateInstance()에 의해서 반환되는 것은 DateFormat을 상속받아 완전하게 구현한 SimpleDateFormat 인스턴스이다. 기호 의미 예 G 연대(BC, AD) AD y 년도 2023 M 월(1~1.. 2023. 2. 2.
[자바] 형식화 클래스 형식화 클래스는 java.text 패키지에 포함되어 있으며 숫자, 날짜, 텍스트 데이터를 일정한 형식에 맞게 표현할 수 있는 방법을 객체지향적으로 설계하여 표준화하였다. import java.text.DecimalFormat; public class DeciamlFormatEx1 { public static void main(String[] args) { double number = 1234567.89; System.out.println(new DecimalFormat("0").format(number)); //10진수 System.out.println(new DecimalFormat("#").format(number)); //10진수 System.out.println(new DecimalFormat(".. 2023. 2. 2.
[자바] Calendar Calendar Calendar는 추상 클래스이기 때문에 직접 객체를 생성할 수 없고, 메서드를 통해서 완전히 구현된 클래스의 인스터스를 얻어야 한다. getInstance()는 시스템의 국가와 지역 설정을 확인해서 태국을 제외하고는 GregorianCalendar의 인스턴스를 반환한다. (태국의 경우 BuddhistCalendar 인스턴스 반환) GregorianCalendar는 Calendar를 상속받아 오늘날 전섹 공통으로 사용하고 있는 그레고리력에 맞게 구현한 것이다. 인스턴스를 직접 생성해서 사용하지 않고 메서드를 통해서 인스턴스를 반환받게 하는 이유는 최소한의 변경으로 프로그램이 동작할 수 있도록 하기 위해서이다. public class CalendarEx1 { public static voi.. 2023. 2. 2.
[자바] 사용자 정의 예외 만들기 안드로이드와 연동되는 API를 만들어 준적이 있는데, 이 때 호출 URL 마다 고객사에서 정해준 에러 메세지와 에러 코드를 던져줘야 했다. 꼭 자바에서 제공되는 Exception 이 아닌 사용자정의 Exception을 던져줘야 할 때가 있다. 아래 소스는 간단히 만들어 본 샘플 사용자 정의 예외 만들기 소스이다. class CustomException { public static void main(String[] args) { try { join(); } catch (JoinException me) { me.printStackTrace(); System.out.println(me.getMessage()); System.out.println(me.getErrCode()); } } static void jo.. 2023. 2. 1.
[자바] default method 와 static method JDK 1.8 이전에는 인터페이스에 추상 메서드만 사용할 수 있었다. 하지만, JDK 1.8 이후부터는 default 메서드와 static 메서드도 추가할 수 있게 되었다. 디폴트 메서드 인터페이스를 implements 하는 모든 클래스들은 모든 메서드를 구현해야 한다. 모든 메서드를 구현하는 것도 엄청 일이지만, 만약 인터페이스가 수정되거나 추가된다면 해당 인터페이스를 implements 하는 모든 클래스들도 수정되어야 한다. 이러한 문제점을 유연하게 해결하기 위해 default method 가 추가되었다. default 메소드의 가장 일반적인 사용 목적은 구현 클래스를 파괴하지 않은채로 점진적으로 추가적인 기능을 제공한다는 것에 있다. 즉, 기존의 추상 메소드에 기능을 덧붙이는 목적으로 사용할 수 있.. 2023. 2. 1.
[IntelliJ]패키지 'java.lang'이(가) 모듈 'java.base'에 선언되어 있지만 이 모듈은 모듈 그래프에 없습니다 인텔리제이에서 자바 테스트를 하는데 패키지 'java.lang'이(가) 모듈 'java.base'에 선언되어 있지만 이 모듈은 모듈 그래프에 없습니다. 빨간줄이 그어지면서 실행은 또 잘 된다. 그래도 빨간줄은 언제나 찝찝. 혹시나 해서 File > IDE 다시 시작을 해주니 빨간줄이 사라졌다. 좀 허무하게 해결됐다. 2023. 2. 1.
소프트웨어 장인 아는 개발자분의 추천으로 읽은 '소프트웨어 장인' - 산드로 만쿠소 지음 어떻게 하면 더 나은 프로그래머가 될 수 있을까? 외국 개발 환경에 맞춰진 책이다보니 100% 공감을 할 수 있는건 아니었지만 대부분 공감되는 글이었고, 어느나라든 비슷비슷하구나라는 느낌을 받았다. 내가 항상 가지고 있는 생각이 돈을 받는 순간 우리는 프로처럼 일해야 된다라는 것이었다. 받는 월급보다 더 많은 일을 하지는 못 해도 적어도 받은 만큼은 하자가 내가 일할때의 마인드인데 이 책을 읽으면서 더 나은 개발자가 되기 위해 그리고 더 좋은 코드를 작성하기 위해 뭘 해야될지 고민해보게 된다. 조금만 집중하면 몇시간만에 읽을 수 있는 책이고, 술술 읽히기 때문에 출퇴근때 가볍게 읽어보는걸 추천한다. 무엇보다는 주니어분들보다는 곧 시.. 2023. 1. 29.
반응형