profile image

L o a d i n g . . .

Q. 문장을 입력 받아, 공백으로 분리 된 어절(영단어)이 몇 개 들어 있 는지 출력하고, 각 어절(영단어) 을 사전순으로 정렬하여 출력하 시오. “exit”을 입력할 때까지 반 복하시오

 

문장을 입력하세요>> Split this string 
around matches of the given regular 
expression.
어절의 개수는 10
Split
around
expression.
given
matches
of
regular
string
the
this
문장을 입력하세요>> 우리 모두 코로나
조심!
어절의 개수는 4
모두
우리
조심!
코로나
문장을 입력하세요>> exit

 

import java.util.Arrays;
import java.util.Scanner;
import java.util.StringTokenizer;


public class SplitAndSort {

	static void MySplit(String input) {
		if(!input.contains(" ")) {
			System.out.println("어절의 개수는 1");
			System.out.println(input);
			return;
		}
		String[] arr = new String[50];
		int i=0;
		StringTokenizer tokenInput = new StringTokenizer(input, " ");
		
		System.out.println("어절의 개수는 " + tokenInput.countTokens());
		while(tokenInput.hasMoreTokens()) {
			arr[i] = tokenInput.nextToken();
			i += 1;
		}

		String temp;
		for(int j=0; j<i; j++) {
			for(int k=0; k<j; k++) {
				if(arr[j].charAt(0)<arr[k].charAt(0)) {
					temp=arr[j];
					arr[j]=arr[k];
					arr[k]=temp;
				}
			}
		}
		
		for(int z=0; z<i; z++) {
			System.out.println(arr[z]);
		}
		
		
	}
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String input;
		while(true) {
			System.out.println("문장을 입력하세요>>");
			input = sc.nextLine();
			if(input.equals("exit") || input.equals("")) {break;}
			MySplit(input);
		}
	}

}

 

복사했습니다!