컴퓨터공부/Kotlin & Java 34

2차원 배열, 배열 초기화(Two dimensional array, initialize)

ArrayList 타입의 데이터를 구성 하고 싶을 때, 다음 것 중에 하나를 선택해서 하면 되겠다. 물론 가장 뒤에 나온게 생성하면서 초기화 까지 하니 더 가독성이 높을 것 같다. 1. List를 ArrayList에 넣어 주는 방법 ArrayList testList = new ArrayList(); List list = Arrays.asList(new int[]{5,12}, new int[]{1, 2}); testList.addAll(list); 2. int[][] 를 Arrays.asList()를 통하여 변환 후 넣어 주는 방법 int[][] array = new int[][]{{5, 10}, {1, 2}}; List list = Arrays.asList(array); testList.addAll(li..

숫자 2개를 받아서 합을 출력하는 간단 예제

public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int sum = 0; String input; int integer; String input_temp; while(true){ input = scanner.nextLine(); input_temp = input; if(input_temp.contains("exit")){ break; } Scanner scannerDivider = new Scanner(input).useDelimiter(" "); while(scannerDivider.hasNext()){ integer = scannerDivider.nextInt(); s..

StringBuilder, StringBuffer 차이

자바에서 String과 StringBuffer, StringBuilder의 차이점을 알아본다. 이들의 공통점은 모두다 String(문자열)을 저장하고 관리하는 클래스들이다. 어떤 차이점이 있을까? String과 (StringBuffer, StringBuilder)의 차이점은 String은 immutable(불변)하고 StringBuffer, StringBuilder는 mutable(가변)하다는 점이다. 쉽게 말해서 String은 new 연산을 통해 생성되면 그 인스턴스의 메모리 공간은 절대 변하지 않는다. 그래서 + 연산이나 concat을 이용해서 문자열에 변화를 줘도 메모리 공간이 변하는 것이 아니라 새로운 String객체를 new로 만들어서 새로운 메모리 공간을 만드는 것이다. 이렇게 새로운 문자열이..

Scanner를 이용한 배열, 기본 입출력

java는 c나 c++과 입출력이 많이 다르네요. public class Main { public static void main(String[] args) { int arr[] = new int[10]; int[] arr2 = new int[10]; char cc[] = {'a', 'b'}; System.out.println(arr.length); System.out.println(cc); String str[] = new String[4]; str[0] = "zero"; str[1] = "first"; str[2] = "second"; System.out.println(str); String[] members; members = new String[]{"aaa"}; members = new String..

String의 null 체크 필요 없이 문자열이 같은지 비교하기(Objects.equals())

String문 비교할 때, 아래와 같은 구문을 쉽게 볼 수 있다. 1. if (str != null && str.equals("true")) { } 2. if (str != null && "true".equals(str)) { } 3. if ( (str1 != null && str2 != null) && str1.equals(str2)) {} 1번에 비해서 2번이 낮다, 그리고 변수가 2개가 되면 3번이 된다. 뭘 어떻게 봐도.. 구리다.. 이럴 땐 아래와 같이 쓰면 된다. 쉽고 간단하고 안전하다. if( Objects.equals(str1, str2)) { } 원형 : public static boolean equals(Object a, Object b) { return (a == b) || (a !=..

현재 날짜 추출하기 및 날짜 간격 확인하기

날짜 관련된 것은 신경 안썼는데..이게.. 들여다 본것 정리를 하는게 좋을것 같다. 날짜를 구할 때는 Calendar.YEAR, Calendar.MONTH 과 같은 매크로? 같은걸 써줘야 쉽게 날짜를 구할 수 있다. 아래 함수와 같이 Calendar.set()를 통하여 날짜를 생성할 수 있다. public Date getFirstDayOfWeek(){ // 현재 날짜를 구한다 Calendar cal = Calendar.getInstance(); // cal.setTimeZone(TimeZone.getTimeZone("GMT")); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH); // int days = cal.get(Cale..

StringTokenizer 예제

StringTokenizer 클래스는 String.split()와 비슷하지만 또 다르다.사실 두개가 무슨 큰 차이인가 하는 생각이 들기도 한다. 어떤걸 쓰더라도 문제 없이 쓰면 되는거 아닌가?그래도 두개의 차이는 존재 한다. String.split()에 비해 StringTokenizer은 여러 문자에 대해서도 한번에 파싱이 가능하다.아래와 같이 "!"와 "/"를 한 번에 파싱할 수 있다.String str = "1/2!3/4!5"; StringTokenizer tokenizer = new StringTokenizer(str, "/!");결과 > 12-22 01:45:42.486 13023-13023/com.study.practice.stringtokenizer I/System.out: 112-22 01:..

TDD 교육(실습) 정리

TDD교육을 받은지 좀 됐는데... 미루다 이제야 정리를 한다.첨부의 자료를 참고하면 Junit 테스트 방법을 알 수 있다. 내가 별로 추가해야할 건 없어 보인다. 다만 그 전에 이해해야 하는 TDD Cycle를 알고 가면 좋을 것 같다. 1. 시작은.. test가 실패할 case를 먼저 작성하는 것이다. 1. 이건... 정상적은 class에서는 성공했을 case이지만 현재 구현에서는 fail이 될 case를 작성하라는 것이다. 즉, 정상적인 TC작성이다. ex) public class FizzBuzzTest {// Arrange - GivenFizz fizzBuzz = new Fizz();@Testpublic void fizz_should_say_number_for_1() {//// Arrange - ..

자바 Exception, 예외처리, try/catch, 사용자 정의 예외클래스 생성

35. 예외처리 - 예외? : 프로그램이 실행중에 발생되는 사건 : 자바에서는 Exception (익셉션) 이라고 한다. - 예외가 발생되면? : 프로그램이 '비정상 종료' 된다. : 일반 사용자는 어떤 문제로 프로그램이 비정상 종료되었는지를 모른다. (예외 관련된 정보를 제공하지만 일반 사용자는 잘 모른다 -> 영어/전문용어) - 예외처리? : 프로그램이 '비정상 종료' 되는 것을 '정상 종료'로 만들어 주는것 : 'Exception handling' 이라고 한다 : 일반 사용자가 어떤 문제로 프로그램을 중단하게 되었는지를 알려줄수 있다. (일반 사용자에게 영어 대신 한국어로, 전문용어 대신 일반 문장을 사용할수 있다) - 예외처리 방법 2가지 1) try ~ catch 블럭 try { // 실행코드 ..

Eclipse 단축키 모음

Eclipse 단축키 확인 및 변경Eclipse의 모든 단축키는 Window >> Preferences >> Workbench >> Keys 메뉴에서 확인 및 변경이 가능하다. 그 동안 다른 툴에서 자신의 손에 익숙한 단축키들이 있다면 이 메뉴에서 단축키들을 변경하는 것이 가능하다. Java Editor 단축키Ctrl + Shift + M : 특정 클래스 Import 시키기 Ctrl + Shift + O : 자동으로 Import 시키기 Ctrl + Shift + F : 코드 자동 정리 Ctrl + Shift + G : 특정 메써드나 필드를 Reference하고 있는 곳을 찾는다. Ctrl + 1 : Quick Fix. 에러가 발생했을 경우 Quick Fix를 통해 쉽게 해결이 가능하다. Ctrl + Sh..