본문 바로가기

Java

(24)
[이것이 자바다] 문자열 클래스 (String, StringBuilder, StringBuffer) String 클래스 String 클래스는 문자열을 저장하고 조작할 때 사용한다. ex) 네트워크 통신으로 얻은 byte 배열을 원래 문자열로 변환하는 경우 //기본 문자셋으로 byte 배열을 디코딩해서 String 객체로 생성 String str = new String(byte[] bytes); //특정 문자셋으로 byte 배열을 디코딩해서 String 객체로 생성 String str = new String(byte[] bytes, String charsetName); import java.util.Arrays; public class BytesToStringExample { public static void main(String[] args) throws Exception { String data = ..
[Java의 정석_연습문제 풀이] Chapter16. 네트워킹 [16-1] ip주소가 192.168.10.100이고 서브넷 마스크(subnet mask)가 255.255.255.0일 때, 네트워크 주소와 호스트 주소를 계산하여 화면에 출력하는 프로그램을 작성하시오. 단, 비트연산자를 사용해서 계산해야 한다.[실행결과]네트워크 주소 : 192.169.10.0.호스트 주소 : 0.0.0.100. 답public class Exercise16_1 { public static void main(String[] args) {byte[] ip = { (byte) 192, (byte) 168, (byte) 10, (byte) 100 };byte[] subnet = { (byte) 255, (byte) 255, (byte) 255, (byte) 0 }; byte[] nwAddres..
[Java의 정석_연습문제 풀이] Chapter15. 입출력(I/O) [15-1] 커맨드라인으로부터 파일명과 숫자를 입력받아서, 입력받은 파일의 내용의 처음부터 입력받은 숫자만큼의 라인을 출력하는 프로그램(FileHead.java)을 작성하라.([Hint] BufferedReader의 readLine( )을 사용하라.)[실행결과]C:\jdk1.8\work\ch15>java FileHead 10 USAGE: java FileHead 10 FILENAME C:\jdk1.8\work\ch15>java FileHead 10 aaa aaa은/는 디렉토리이거나, 존재하지 않는 파일입니다. C:\jdk1.8\work\ch15>java FileHead 10 FileHead.java 1:import java.io.*; 2: 3:class FileHead 4:{ 5: public stati..
[Java의 정석_연습문제 풀이] Chapter14. 람다와 스트림 [14-1] 메서드를 람다식으로 변환하여 아래의 표를 완성하시오. 메서드 람다식 int max(int a, int b) {return a > b ? a : b;} (int a, int b) -> a > b ? a : b int printVar(String name, int i) {System.out.println(name+"="+i);} (String name, int i) -> System.out.println(name+"="+i) int square(int x) {return x*x;} (int x) -> x*x int roll() {return (int)(Math.random() * 6);} () -> (int)(Math.random() * 6) int sumArr(int[] arr) {int su..
[Java의 정석_연습문제 풀이] Chapter13 쓰레드 [13-1] 쓰레드를 구현하는 방법에는 Thread 클래스로부터 상속받는 것과 Runnable 인터페이스를 구현하는 것 두 가지가 있는데, 다음의 코드는 Thread클래스를 상속받아서 쓰레드를 구현한 것이다. 이 코드를 Runnable 인터페이스를 구현하도록 변경하시오. class Exercise13_1 {public static void main(String args[]) {Thread1 th1 = new Thread1();th1.start();}} class Thread1 extends Thread {public void run() {for (int i = 0; i < 300; i++) {System.out.print('-');}}} 답 :class Exercise13_1 {public static ..
[Java의 정석_연습문제 풀이] Chapter12 Generics, Enumeration, Annotation(지네릭스, 열거형, 애너테이션) [12-1] 클래스 Box가 다음과 같이 정의되어 있을 때, 다음 중 오류가 발생하는 문장은? 경고가 발생하는 문장은?class Box { //지네릭 타입 T를 선언 T item; void setItem(T item) { this.item = item; } T getItem() { return item; } }}a. Box b = new Box( ); //에러. 대입된 타입이 반드시 같아야 한다.b. Box b = (Object)new Box( ); //에러. Object타입을 Box타입의 참조변수에 저장불가. (타입 불일치)c. new Box( ).setItem(new Object( )); //에러. 대입된 타입이 String이므로, setItem(T item)의 매개변수 역시, String타입만 허용..
[Java의 정석_연습문제 풀이] Chapter11 컬렉션 프레임워크 [11-1] 다음은 정수집합 1, 2, 3, 4와 3, 4, 5, 6의 교집합, 차집합, 합집합을 구하는 코드이다. 코드를 완성하여 실행결과와 같은 결과를 출력하시오. ([Hint] ArrayList클래스의 addAll( ), removeAll( ), retainALL( )을 사용하라.)import java.util.*; class Exercise11_1 {public static void main(String[] args) {ArrayList list1 = new ArrayList();ArrayList list2 = new ArrayList();ArrayList kyo = new ArrayList(); // 교집합ArrayList cha = new ArrayList(); // 차집합ArrayList h..
[Java의 정석_연습문제 풀이] Chapter10 날짜와 시간 & 형식화 [10-1] Calendar 클래스와 SimpleDateFormat클래스를 이용해서 2010년의 매월 두 번째 일요일의 날짜를 출력하시오.[실행결과] 2010-01-10은 2번째 일요일입니다.2010-02-14은 2번째 일요일입니다.2010-03-14은 2번째 일요일입니다.2010-04-11은 2번째 일요일입니다.2010-05-09은 2번째 일요일입니다.2010-06-13은 2번째 일요일입니다.2010-07-11은 2번째 일요일입니다. 2010-08-08은 2번째 일요일입니다.2010-09-12은 2번째 일요일입니다. 2010-10-10은 2번째 일요일입니다.2010-11-14은 2번째 일요일입니다.2010-12-12은 2번째 일요일입니다.답:import java.text.SimpleDateFormat;..