본문 바로가기

국비교육/국비교육 복습

day14_api.lang.String_Test05 : charAt(int index) (★)

(Q) 바나나라는 제시어가 주어져 있을 때

      사용자에게 입력받은 글자가 제시어와 이어지는지 검사하여 출력하는 프로그램 구현

 

(추가)

  • 반복적으로 수행하면 끝말잇기 혹은 쿵쿵따를 만들 수 있습니다
  • 끝말잇기는 2글자 이상, 쿵쿵따는 반드시 3글자

끝말 잇기 메인 메소드

package day14_api.lang.String;

import java.util.Scanner;

public class Test05 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		// 초기 제시어
		String now = "바나나";
		System.out.println("제시어 : " + now);
		
		// 남은 횟수
		int count = 3;
		
		while(true) {
			// 다음 입력
			String next = sc.next();
			
			// 판정
			// 1) 글자가 연결되는가
			boolean match = now.charAt(now.length() - 1) == next.charAt(0);
			// 2) 글자 수가 2글자 이상인가
			boolean number = next.length() >= 2;
			
			// 만약 두 조건을 만족한다면
			if(match & number) {
				now = next;		// 제시어는 이번 입력이 된다
				System.out.println("성공, 제시어 변경 : " + now);
			}
			
			// 그렇지 않다면
			else {
				count --;		// 남은 횟수 1만큼 감소
				System.out.println("실패, 남은 횟수 :" + count);
			}
			
			// 만약 남은 횟수가 0 이하가 되면
			if(count <= 0) {
				break;			// 구문 탈출
			}
		}
		
		// 게임 오버 메세지 출력
		System.out.println("Game Over!");
		
		sc.close();
	}
}

 

.charAt(int index)

- 문자열의 해당 인덱스 번호의 한 글자 추출

변수명.charAt(인덱스 번호)

 

쿵쿵따 메인 메소드

package day14_api.lang.String;

import java.util.Scanner;

public class Test05_1 {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		// 초기 제시어
		String now = "바나나";
		System.out.println("제시어 : " + now);
		
		// 남은 횟수
		int count = 3;
		
		while(true) {
			// 다음 입력
			String next = sc.next();
			
			// 판정
			// 1) 글자가 연결되는가
			boolean connection = now.charAt(now.length() - 1) == next.charAt(0);
			// 2) 글자 수가 2글자 이상인가
			boolean number = next.length() == 3;
			
			// 만약 두 조건을 만족한다면
			if(connection && number) {
				now = next;
				System.out.println("성공, " + now + " 쿵쿵따!");
			}
			
			// 그렇지 않다면
			else {
				count --;		// 남은 횟수 1만큼 감소
				System.out.println("실패, 남은 횟수 :" + count);
			}
			
			// 만약 남은 횟수가 0 이하가 되면
			if(count <= 0) {
				break;			// 구문 탈출
			}
		}
		
		// 게임 오버 메세지 출력
		System.out.println("Game Over!");
				
		sc.close();
	}
}

 

** 끝말잇기와 쿵쿵따의 차이점

- 글자수 제한을 2글자 이상으로 할 것인지(끝말잇기) 또는 정확히 3글자로 할 것인지(쿵쿵따)