본문 바로가기

프로그래밍/Java

이것이 자바다 11장 확인 문제 답 - 신용권의 Java 프로그래밍 정복

728x90
반응형

Object 클래스에 대한 설명 중 틀린 것은 무엇입니까?


4번

 


 

괄호 안을 채워보세요


hashCode(), equals()

 


 

해시코드를 리턴하세요


 

public class Student {
	private String studentNum;
	
	public Student(String studentNum) {
		this.studentNum = studentNum;
	}

	public String getStudentNum() {
		return studentNum;
	}

	@Override
	public boolean equals(Object obj) {
		if(obj instanceof Student) {
			Student student = (Student) obj;
			if(studentNum.equals(student.getStudentNum())) {
				return true;
			}
		}
		return false;
	}
	
	@Override
	public int hashCode() {
		return studentNum.hashCode();
	}
}

 


 

실행결과 처럼 오버라이딩 해서 작성해보세요


public class Member {
	private String id;
	private String name;
	
	public Member(String id, String name) {
		this.id = id;
		this.name = name;
	}
	
	@Override
	public String toString() {
		return id + ": " + name;
	}
}

 


 

클래스 객체에 대한 틀린 것은?


5번

 


 

바이트 배열을 문자열로 변환


public class BytesToStringExample {
	public static void main(String[] args) {
		byte[] bytes = { 73, 32, 108, 111, 118, 101, 32, 121, 111, 117 };
		String str = new String(bytes);
		System.out.println( str );
	}
}

 


 

"자바"를 대치한 새로운 문자열을 만드시오

 


public class FindAndReplaceExample {
	public static void main(String[] args) {
		String str = "모든 프로그램은 자바 언어로 개발될 수 있다";
		int index = str.indexOf("자바");
		if(index == -1) {
			System.out.println("자바 문자열이 포함되어 있지 않습니다");
		} else {
			System.out.println("자바 문자열이 포함되어 있습니다");
			str = str.replace("자바", "Java");
			System.out.println("-->" + str);
		}
	}
}

 

스플릿


import java.util.StringTokenizer;

public class SplitExample {
	public static void main(String[] args) {
		String str = "아이디,이름,패스워드";

		String[] tokens = str.split(",");
		for(String token : tokens) {
			System.out.println(token);
		}
		
		System.out.println();

		StringTokenizer stringTokenizer = new StringTokenizer(str, ",");
		while(stringTokenizer.hasMoreTokens()) {
			String token = stringTokenizer.nextToken();
			System.out.println(token);
		}
		
	}
}

 


스트링 빌더


public class StringBuilderExample {
	public static void main(String[] args) {
		String str = "";
		for(int i=1; i<=100; i++) {
			str += i;
		}
		System.out.println(str);
		
		StringBuilder sb = new StringBuilder();
		for(int i=1; i<=100; i++) {
			sb.append(i);
		}
		str = sb.toString();
		
		System.out.println(str);
	}
}

 

 

정규 표현식


import java.util.regex.Pattern;

public class PatternMatcherExample {
	public static void main(String[] args) {
		String id = "5Angel1004";
		String regExp = "[a-zA-Z][a-zA-Z0-9]{7,11}";
		boolean isMatch = Pattern.matches(regExp, id);
		if(isMatch) {
			System.out.println("ID로 사용할 수 있습니다.");
		} else {
			System.out.println("ID로 사용할 수 없습니다.");
		}
	}
}

 

 

false가 나오는 이유


포장 객체의 ==, != 비교연산자는 내부의 값을 비교하는 것이 아니라 포장 객체의 참조를 비교하기 때문. 그러나 true, false, -128 ~ 127이면 비교 가능


 

문자열 변환


 

public class StringConvertExample {
	public static void main(String[] args) {
		String strData1 = "200";
		int intData1 = Integer.parseInt(strData1);
		
		int intData2 = 150;
		String strData2 = String.valueOf(intData2);
	}
}

 

오늘 날짜


import java.text.SimpleDateFormat;
import java.util.Date;

public class DatePrintExample {
	public static void main(String[] args) {
		Date now = new Date();
		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy년 MM월 dd일 E HH시 mm분");
		System.out.println( sdf.format(now) );
	}
}

 

728x90
반응형