본문 바로가기

JAVA

[JAVA][명품자바에쎈셜]06장 연습문제 풀이

2. Scanner를 이용하여 한 라인을 읽고, 공백으로 분리된 어절이 몇 개인지 출력을 반복하는 프로그램을 작성하라. "exit"이 입력되면 종료한다.

I Love Java
어절 개수는 3
나는 자바 프로그래밍을 정말 좋아합니다.
어절 개수는 5
exit
종료합니다...

다음과 같이 코드를 작성하고자 할때, 이번 장에서 배운 것을 가장 먼저 활용을 해보고자 한다면 무얼 해야할까?

 

Scanner를 이용하니까,  Scanner와 관련된 패키지를 읽는거을 우선으로 하는 것이다. 

다만, 패키지들은 모두 ctrl+shift+o 를 통하여 자동 추가가 가능하니, 오타를 피하고 싶다면 이용하도록 하자!

 

pacage ch06; //6장용 패키지를 만들어서 6장 실습을 저장하고 있다.

import java.util.Scanner;
import java.util.StringTokenizer;	//하나의 문자열을 여러개의 문자열로 나누는 클래스
					//이때, Token은 분리된 문자열(어절)이 된다.
public class Ex02 {
	public static void main(String [] args){
    	Scanner sc = new Scanner(System.in);
        while(true){
        	String s = sc.nextLine();
            if(s.equals("exit")){		//만약, exit와 scan된 부분이 같다면
            	System.out.println("종료합니다...");	//종료!
                break;					//그리고 끝
             }
             StringTokenizer st = new StringTokenizer(s, " "); //scan된 부분을 StringTokenizer해버려
             
             int n = st.countTokens();		//count 된 어절의 개수를 정수 n에 저장해
             System.out.println("어절의 개수는 " + n);
          }
      }
  }

 

3. 1에서 3까지의 난수를 3개 생성한 뒤 나란히 한 줄에 출력하라. 모두 같은 수가 나올 때 까지 반복 출력하고, 모두 같은 수이면 "성공"을 출력하고 종료하는 프로그램을 작성하라.

package ch06;

import java.util.StringTokenizer;

public class Ex03{
	public static void main(String [] args){
    	int r[] = new int[3];
        while(true) {
        	for (int i = 0 ; i < 3 ; i ++) {
            	r[i] = (int)(Math.random()*3+1