Java 초급 (46)

반응형

 

문제

 

1. 다음을 만족하는 Student 클래스를 작성하시오.
· String형의 학과와 정수형의 학번을 필드로 선언
· Student 클래스의 main() 메소드에서 Student 객체를 생성하여 학과와 학번 필드에 적당한 값을 입력 후 출력

 

2. main 메서드에서 실행시켰을 때 제조사, 생산년도, 크기를 출력하는 Tv클래스를 생성하시오.

 

3. 세 과목의 성적을 입력 받고 총점을 출력할 수 있는 Grade class를 설계하시오.


----------------------------------------------------------------------------------------------------------------

 

4. 정수형 원점의 좌표(x,y)와 실수 타입의 가로와 세로를 입력받아 사각형을 만드는 클래스를 설계하고, 3
개의 사각형을 만든 뒤 첫 번째 사각형에 나머지 두 개의 사각형이 포함되었는지 여부를 판단할 수 있는 메서
드를 포함시키시오.

 

 

 

1번 문제

 

package kr.or.ddit.homework.HomeWork11;

public class Student {
	String depan; // 학과
	int stuId; // 학번
	
	public Student(String depan, int stuId) {
		this.depan = depan;
		this.stuId = stuId;
	}

	@Override
	public String toString() {
		return "학생 [학과=" + depan + ", 학번=" + stuId + "]";
	}
}

 

package kr.or.ddit.homework.HomeWork11;

public class StudentExample {
	public static void main(String[] args) {
		StudentExample obj = new StudentExample();
		// 문제 1
		Student s1 = new Student("컴퓨터", 2023);
		System.out.println(s1);
	}
}

 

결과 화면1

 

 

 

2번 문제

 

package kr.or.ddit.homework.HomeWork11;

public class TvExample {
	public static void main(String[] args) {
		TvExample obj = new TvExample();
		
		// 문제 2
		obj.Tv();
	}

	public void Tv() {
		String manu = "제조사"; 
		int prod = 2023;
		String size = "12인치";
		
		System.out.println("제조사 : " + manu + ", 생산년도 : " + prod + ", 크기 : " + size);
	}
}

 

결과 화면2

 

 

 

3번 문제

 

package kr.or.ddit.homework.HomeWork11;

import java.util.Scanner;

public class GradeExample {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		// 문제 3
		GradeExample obj = new GradeExample();
		System.out.println("학생의 국어 성적을 입력하시오.");
		int kor = obj.sc.nextInt();
		System.out.println("학생의 수학 성적을 입력하시오.");
		int math = obj.sc.nextInt();
		System.out.println("학생의 영어 성적을 입력하시오.");
		int eng = obj.sc.nextInt();
		
		Grade g1 = new Grade(kor, math, eng);
	}
	
}

class Grade {
	int kor;
	int math;
	int eng;
	
	public Grade(int kor, int math, int eng) {
		this.kor = kor;
		this.math = math;
		this.eng = eng;
		int sum = kor + math + eng;
		System.out.println("학생 a의 총점은 : " + sum);
	}
	
	@Override
	public String toString() {
		return "Grade [kor=" + kor + ", math=" + math + ", eng=" + eng + "]";
	}
}

 

결과 화면3

 

 

 

4번 문제

 

package kr.or.ddit.homework.HomeWork11;

public class Point {
	double x;
	double y;
	
	Point(double x, double y){
		this.x = x; 
		this.y = y;
	}

	@Override
	public String toString() {
		return "Point [x=" + x + ", y=" + y + "]";
	}
}

 

package kr.or.ddit.homework.HomeWork11;

import java.util.Scanner;

public class Rectangle {
	Point p1;
	Point p2;
	Point p3;
	Point p4;
	
	public Rectangle(int x, int y, double width, double height) {
		p1 = new Point(x-width/2, y-height/2);
		p2 = new Point(x+width/2, y-height/2);
		p3 = new Point(x-width/2, y+height/2);
		p4 = new Point(x+width/2, y+height/2);
	}
	
	public boolean contains(Rectangle r) {
		boolean chk1 = (this.p1.x <= r.p1.x && this.p1.y <= r.p1.y);
		boolean chk2 = (this.p4.x >= r.p4.x && this.p4.y >= r.p4.y);
		
		if(chk1 &&chk2 ) {
			return true;
		}
		else return false;
	}
}

 

package kr.or.ddit.homework.HomeWork11;

public class RectangleExample {
	public static void main(String[] args) {
		Rectangle r1 = new Rectangle(0, 0, 10, 10);
		Rectangle r2 = new Rectangle(3, 3, 5, 5);
		Rectangle r3 = new Rectangle(0, 0, 10, 10);
		
		System.out.println(r1.contains(r2));
		System.out.println(r1.contains(r3));
	}
}

 

 

반응형
반응형

 

문자열을 문자로 변환 (toCharArray)

 

// 문자열 -> 문자
변수명.toCharArray()

 

package kr.or.ddit.study11;

public class StringExample {
	public static void main(String[] args) {
		StringExample se = new StringExample();
		se.method1();
	}
    
	public void method1() {
		String test = "문자열 테스트 입니다.";
		
		for(int i=0; i<test.length(); i++) {
			System.out.println(test.charAt(i));
		}
		
		for(char c : test.toCharArray()) {
			System.out.println(c);
		}
	}
}

 

결과 화면1

 

 

 

문자열이 있는지, 같은 문자열인지 확인(contains, equals)

 

// 문자열이 있는지
변수명.contains()

// 데이터가 같은지
변수명.equals()

 

package kr.or.ddit.study11;

public class StringExample {
	public static void main(String[] args) {
		StringExample se = new StringExample();
		se.method2();
	}
	
	public void method2() {
		String test = "문자열 테스트 입니다.";
		String search = "테스트";
		
		// constains 해당 문자열이 있는지 확인.
		if(test.contains(search)) {
			System.out.println(search + " 값이 포함되어 있습니다.");
		}
		
		// equals 해당 데이터가 같은지 확인
		search = test;
		if(test.equals(search)) {
			System.out.println(search + " 값이 동일합니다.");
		}
	}
}

 

결과 화면2

 

 

 

문자(내용)이 맞는지 확인 (equalsIgnoreCase)

 

// 문자 내용 확인
변수명.equalsIgnoreCase()

 

package kr.or.ddit.study11;

public class StringExample {
	public static void main(String[] args) {
		StringExample se = new StringExample();
		se.method3();
	}
	
	public void method3() {
		String t = "Yes";
		
//		if(t.equals("y")) {
//			System.out.println("참");
//		}
//		else if(t.equals("Y")) {
//			System.out.println("참");
//		}
		
		// equalsIgnoreCase 대문자 소문자 상관 없이 문자만 맞을 시 허용
		if(t.equalsIgnoreCase("yes")) {
			System.out.println("참");
		}
	}
}

 

결과 화면3

 

 

 

시작하는 문자열 체크, 끝나는 문자열 체크 (startsWith, endsWith)

 

// 시작하는 문자열 체크
변수명.startsWith()

// 끝나는 문자열 체크
변수명.endsWith()

 

package kr.or.ddit.study11;

public class StringExample {
	public static void main(String[] args) {
		StringExample se = new StringExample();
		se.method4();
	}
	
	public void method4() {
		String test = "문자열 테스트 입니다.";
		String start = "문자열";
		
		// startsWith 시작하는 문자열 체크
		if(test.startsWith(start)) {
			System.out.println(start + "로 시작 되는 문자열 입니다.");
		}
		
		// endsWith 끝나는 문자열 체크
		String end = "입니다.";
		if(test.endsWith(end)) {
			System.out.println(end + "로 끝나는 문자열 입니다.");
		}
		
		//
//		File dir = new File("");
//		for(String f: dir.list()) {
//			if(!f.startsWith("2023")) continue;
//			if(f.endsWith(".xls")) {
//				// 파일 이름이 2023으로 시작하는 엑셀 파일
//			}
//		}
	}
}

 

결과 화면4

 

 

 

소문자를 대문자로, 대문자를 소문자로 변환 (toUpperCase, toLowerCase)

 

// 소문자를 대문자로 변환
변수명.toUpperCase()

// 대문자를 소문자로 변환
변수명.toLowerCase()

 

package kr.or.ddit.study11;

public class StringExample {
	public static void main(String[] args) {
		StringExample se = new StringExample();
		se.method5();
	}
    
	public void method5() {
		// toUpperCase 소문자를 대문자로 변환
		String test = "소문자 test 입니다.";
		test = test.toUpperCase();
		System.out.println(test);
		
		// toLowerCase 대문자를 소문자로 변환
		String test2 = "대문자 TEST 입니다.";
		test2 = test2.toLowerCase();
		System.out.println(test2);
	}
}

 

결과 화면5

 

 

 

공백 제거 (trim)

 

// 앞, 뒤 공백 제거, 엔터와 개행문자도 제거해줌.
변수명.trim()

 

package kr.or.ddit.study11;

public class StringExample {
	public static void main(String[] args) {
		StringExample se = new StringExample();
		se.method6();
	}
	
	public void method6() {
		// trim 앞, 뒤 공백 제거, 엔터와 개행문자도 제거해준다. (중요)
		String test = " 문자열 테스트    입니다.  \n   \t \r \r\n  ";
		test = test.trim();
		System.out.println(test);
		System.out.println("test");
		
		// 띄어쓰기로 인해 문제가 생기기에 그 경우를 대비하여 trim을 사용한다.
//		String compare = "test1  ";
//		compare = compare.trim();
//		if(compare.equals("test1")) {
//			System.out.println("같다.");
//		} else {
//			System.out.println("틀리다.");
//		}
	}
}

 

결과 화면6

 

 

 

문자열 바꾸기 (replace)

 

// 문자열 바꾸기
변수명.replace(바꿀 문자열, 바뀐 문자열)

 

package kr.or.ddit.study11;

public class StringExample {
	public static void main(String[] args) {
		StringExample se = new StringExample();
		se.method7();
	}
	
	public void method7() {
		// replace 문자열 바꾸기. (중요)
		// replace(바꿀 문자열, 바뀐 문자열)
		String test = "2023년 입니다.";
		System.out.println(test);
		test = test.replace("2023", "2024");
		System.out.println(test);
	}
}

 

결과 화면7

 

 

 

문자열 쪼개기 (split)

 

// 원하는 문자열을 기준으로 문자열들을 쪼갬.
// String이 String의 배열로 저장됨.
변수명.split(원하는 문자열, 바뀔 문자열)

 

package kr.or.ddit.study11;

public class StringExample {
	public static void main(String[] args) {
		StringExample se = new StringExample();
		se.method8();
	}
	
	public void method8() {
		// split 원하는 문자열을 기준으로 문자열들을 쪼개는 것.
		// String이 String의 배열로 저장됨.
		String test = "스플릿 테스트, "
					+ "test1, "
					+ "test2, "
					+ "test3, "
					+ "test4";
		System.out.println(test);
		String tokens[] = test.split(",");
		for(String token : tokens) {
			System.out.println(token);
		}
	}
}

 

결과 화면8

 

 

반응형

'자바' 카테고리의 다른 글

[Java 초급] 15장 enum 타입, static, 싱글톤  (0) 2023.12.20
[Java 초급] 13.5.2장 테스트2  (0) 2023.12.19
[Java 초급] 13.5.1장 테스트1  (0) 2023.12.18
[Java 초급] 13장 클래스  (0) 2023.12.15
[Java 초급] 11.5장 테스트  (0) 2023.12.13
반응형

 

문제

 

package kr.or.ddit.homework;

import java.util.Scanner;

public class HomeWork10 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		HomeWork10 obj = new HomeWork10();
		obj.process();
	}
	
	public void process() {
		Member[] memList = new Member[10];
		int cur = 0;
		while(true) {
			/*
			 *  스캐너를 통해 
			 *  나라, 지역, 이름을 입력 받기 
			 *  
			 *  지역이 대전이라면 파라미터 2개 생성자  
			 *  아니라면 3개 생성자 호출하기.
			 */
			Member mem = null;
			if(?) {
				
			}else {
				
			}
			memList[cur++]=mem;
		}
	}
	
}
class Member{
	/*
	 *  나라 
	 *  지역 
	 *  이름
	 */
}

 

 

 

정답

 

package kr.or.ddit.homework;

import java.util.Scanner;

public class HomeWork10 {
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		HomeWork10 obj = new HomeWork10();
		obj.process();
	}
	
	public void process() {
		Member[] memList = new Member[10];
		int cur = 0;
		while(true) {
			/*
			 *  스캐너를 통해 
			 *  
			 *  지역이 대전이라면 파라미터 나라, 지역이 기본값
			 *  			생성자 name 파라미터만 호출  
			 *  아니라면 		지역, name 파라미터 2개 생성자 호출하기.
			 */
			
			/*
			 * 1. 멤버추가
			 * 2. 종료 
			 */
			System.out.println("1.멤버추가");
			System.out.println("2.종료");
			String input = sc.nextLine();
			
			Member mem = null;
			if(input.equals("1")) {
				System.out.println("지역을 입력하세요.");
				String region = sc.nextLine();
				System.out.println("이름을 입력하세요.");
				String name = sc.nextLine();
				
				if(region.equals("대전")) {
					mem = new Member(name);
				}else {
					mem = new Member(region, name);
				}
				memList[cur++]=mem;
			}else {
				System.out.println("종료 되었습니다.");
				break;
			}
		}
		
		for(int i=0; i<cur; i++) {
			System.out.println(memList[i]);
		}
	}
	
}

class Member{
	/*
	 *  나라 
	 *  지역 
	 *  이름
	 */
	String country; // 한국
	String region; // 대전
	String name;
	
	Member(String name) {
//		this.country = "한국";
//		this.region = "대전";
//		this.name = name;
		this("대전", name);
	}
	
	Member(String region, String name) {
		this.country = "한국";
		this.region = region;
		this.name = name;
	}

	@Override
	public String toString() {
		return "멤버 [나라=" + country + ", 지역=" + region + ", 이름=" + name + "]";
	}
}

 

결과 화면1

 

 

반응형

'자바' 카테고리의 다른 글

[Java 초급] 13.5.2장 테스트2  (0) 2023.12.19
[Java 초급] 14장 String 메소드 종류  (2) 2023.12.19
[Java 초급] 13장 클래스  (0) 2023.12.15
[Java 초급] 11.5장 테스트  (0) 2023.12.13
[Java 초급] 12장 배열 복사  (0) 2023.12.13
1 ··· 5 6 7 8 9 10 11 ··· 16