본문 바로가기

자바 수업 정리

수업정리 5일차.

String 클래스

문자열을 다루기 위한 클래스 => 참조변수

 String str = new String();

String str = "홍길동"; // 일반 자료형처럼 이용가능
 문자열은 배열과 비슷한 형식

- "홍길동" 0 1 2 index를 가짐

- 공백, 기호 전부 하나의 텍스트로 인지.

 

length() : 전체 글자의 길이 (총글자수)

charAt(index) : index 번지에 있는 문자열을 반환

subString() : 문자열 추출    -  start는 포함 , end 는 미포함 end가 없으면 끝까지.

compareTo(문자) : 문자를 비교하여 앞이면 -1, 같으면 0 , 뒤에있으면 1

concat() :  이어붙이기 ( + 연산자와 같은 의미)

equals() : 두 문자가 같은지 비교(대소문자 구분) 같으면 true 다르면 false

참조변수에서 == 는 주소를비교 equals 로 값을 비교

indexOf() : 문자의 위치(index)를 찾아주는 기능, 찾는문자가 없으면 -1 리턴

lastIndexOf() : 문자의 뒤에서부터 값을 찾음.

contains() : 해당 문자를 포함하는지 체크

trim() : 불필요한 공백 제거

toLowerCase(),toUpperCase() : 대소문자 변환

isEmpty(): 객체가 비어있는지 체크 비어있으면 true 아니면 false

isBlack(): 비어있어도 true 띄어쓰기도 true

replace(): 글자 치환

split(): 특정 값을 기준으로 나누기 => 배열로 리턴

Integer.parseInt() : 숫자로 변환

String.valueOf(): 숫자를 문자로 변환

 

활용 ex)

public class StringEx02 {

	public static void main(String[] args) {
		/* 5개의 파일명이 배열로 주어졌을 때,
		 * 검색어를 입력하면 해당 단어를 포함하는 파일을 출력
		 * 만약 없다면... 검색결과가 없습니다.
		 */
		Scanner scan = new Scanner(System.in);
		
		String[] file = {"이것이자바다.java","java의 정석.java","String.jpg","String method.txt","Array.java"};
		
		//ex) java => 이것이자바다.java, java의 정석.java, Array.java
		// 검색결과가없습니다.
		
		System.out.println("검색단어를 입력해주십시오.");
		String serch = scan.next();
		
		int count = 0;
		
		
		for(int i=0; i < file.length; i++) {
			if(file[i].contains(serch)) {
				count++;
				System.out.print(file[i]+" ");
			} 
		}
		if(count == 0) {
			System.out.println("검색결과가 없습니다.");
		} else {
			System.out.println("총: " + count + "개");
		}		
			
		
		scan.close();
		
	}

}

Method

메서드 : 기능(함수)

메서드 선언 및 구현

 

접근제한자(제어자) 리턴타입 메서드명(매개변수){

구현;

}

 

접근제한자(제어자) : 접근 할 수 있는 주체의 제한범위

리턴타입 : 반환값의 타입 (메서드의 처리가 끝난 후 결과로 알려주는  값의 자료형)

메서드명 : 소문자로 시작

매개변수 : 기능을 수행하기 위해 필요로 하는 값(외부에서 들어와야하는 값) - 생략가능

리턴타입은 생략 불가능, void(리턴 할 것이 없다는 것을 의미)

 

메서드의 위치

클래스 안, 다른 메서드 밖

메서드는 선언 순서가 의미없음.

순서대로 실행되지않고, 호출에 의해 실행됨.

 

return 

- 메서드에서 값을 리턴하는 역할

- 메서드에서 return은 값을 리턴후 종료 

메서드 종료를 의미.

 

ex)

public class MethodEx01 {
	
	public static int sum(int num1, int num2) { 
		return num1 + num2;
	}
	
	public static int sub(int num1, int num2) {
		return num1 - num2;
	}
	public static int mul(int num1, int num2) {
		return num1 * num2;
	}
	public static double div(int num1, int num2) {
		if(num2 ==0) {
			return -99999;
		}	
				
		return num1 / num2;
	}
	public static int mod(int num1, int num2) {
		if(num2 ==0) {
			return -99999;
		}	
				
		return num1 % num2;
	}
	

	public static void main(String[] args) {
		/* 계산기 만들기
		 * -- menu--
		 * |1. 덧셈|2. 뺄셈|3. 곱셈|4. 나눗셈|5. 나머지|6. 종료|
		 *  >> 메뉴선택 1
		 *  >> 숫자1 10
		 *  >> 숫자2 20
		 * 결과 : 10 + 20 = 30
		 * (메서드로 작업하여 호출)
		 */

		Scanner scan = new Scanner(System.in);
		
		int menu = 0;
		
		while(true) {
			
			System.out.println("-- menu --");
			System.out.println("|1. 덧셈|2. 뺄셈|3. 곱셈|4. 나눗셈|5. 나머지|6. 종료|");
			menu = scan.nextInt();
			if(menu == 6) {
				System.out.println("종료합니다.");
				break;
			}		
			System.out.println("두 수를 입력해주세요.");  
			int num1 = scan.nextInt();
			int num2 = scan.nextInt();
			double result = div(num1, num2);
			int result2 = mod(num1, num2);
			switch(menu) {
			case 1 :
				System.out.println(num1+"+"+num2+"="+sum(num1, num2));
				break;
			case 2 :
				System.out.println(num1+"-"+num2+"="+sub(num1, num2));
				break;
			case 3 :
				System.out.println(num1+"*"+num2+"="+mul(num1, num2));
				break;
			case 4 :
				if(result == -99999.0) {
					System.out.println("잘못된 입력입니다.");
				} else {
					System.out.println(num1+"/"+num2+"="+result);
				}
				break;
			case 5 :
				if(result2 == -99999.0) {
					System.out.println("잘못된 입력입니다.");
				} else {
					System.out.println(num1+"%"+num2+"="+result2);
				}
				break;
				default :
					System.out.println("잘못된 입력");
					break;
			}
		}
		scan.close();
			
	}
}

 

야구게임 만들기

import java.util.Scanner;

public class Exam {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		int comNum[] = new int[3];
		int userNum[] = new int[3];
		
		// 컴퓨터의 랜덤 수 생성 : 중복x (1~9)
		for(int i = 0; i<comNum.length; i++) {
			comNum[i] = (int)(Math.random()*9)+1;
			for(int j=0; j<i; j++) {
				if(comNum[i] == comNum[j]) {
					i--;
				}
			}
		}
		
		
//		for(int a : comNum) {
//			System.out.print(a+" ");
//		}
//		System.out.println();
		
		
		
		while(true) {
			System.out.println(" 숫자 입력 >> ");
			String myStr =  scan.next();
			String[] myNum = myStr.split("");
			
			for(int i=0; i<userNum.length; i++) {
				userNum[i] = Integer.parseInt(myNum[i]);
			}
			// 숫자 비교
			int s =0;
			int b =0;
			
			for(int i=0; i<comNum.length; i++) {
				for(int j=0; j < userNum.length; j++) {
					if(comNum[i] == userNum[j] && i == j) { // 값도 존재하고, 위치도같다면
						s++;
					} else if (comNum[i] == userNum[j] && i !=j) {
						b++;
					}
				}
			}
			if( s == 3) {
				System.out.println(" 스트라이크 3개 정답~!!");
				break;
			} else if ( s == 0 && b == 0) {
				System.out.println(" out 입니다.");
			} else {
				System.out.println("스트라이크 :"+ s +"볼:"+ b);
			}
					
			
	}
		
		
		scan.close();
	}

}

 

 

'자바 수업 정리' 카테고리의 다른 글

수업정리 7일차.  (2) 2024.07.23
수업정리 6일차.  (2) 2024.07.22
수업정리 4일차.  (0) 2024.07.18
수업정리 3일차.  (1) 2024.07.17
수업정리 2일차.  (0) 2024.07.16